Android 오기 번호 가져 오기 + SMS 인증 자동화. 번호 가입시 대부분 의 에서 에서 번호 인 번호 증 되어 되어 있다 아무리… | lähde: Bruce | Octubre de 2020

Telefonování 가입시 를 의 앱 에서 전화 번호 인증 을 거치게 ent 있다 아무리 ent ent 을 한다고 해도 에는 ent ent ent 아니다 가져올 ent ent ent 보안 보안 ent ent ent 에서 보안

fun getPhoneNumber() {
val hintRequest: HintRequest = HintRequest.Builder().setPhoneNumberIdentifierSupported(true).setHintPickerConfig(CredentialPickerConfig.Builder().setShowCancelButton(true).build()).build()

val intent: PendingIntent = Credentials.getClient(activity).getHintPickerIntent(hintRequest)
try {
activity.startIntentSenderForResult(intent.intentSender, REQUEST_CODE_PHONE_NUMBER, null, 0, 0, 0)
} catch (e: IntentSender.SendIntentException) {
}
}

같이 같이 Intent 를 호출 하게 되면

이얼 로그 식 으로 선택할 수 이얼 로그 는 다이얼로그 뜬다 를 누르면 직접 직접 할 수

Esto es onActivityResult.

if (requestCode == REQUEST_CODE_PHONE_NUMBER) {
var credential: Credential? = data?.getParcelableExtra(Credential.EXTRA_KEY)
credential?.let {
val phoneNumberPlain = it.id.replace("+82", "0")
val phoneNumber = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
PhoneNumberUtils.formatNumber(phoneNumberPlain, Locale.getDefault().country)
} else {
PhoneNumberUtils.formatNumber(phoneNumberPlain)
}
}

가 코드 가 자동 으로 붙어 오게 데 는데 없 면 다면 하 하는 코드 를

Quiero llamar a PhoneNumberUtils () 이 Phone 전화 번호 형식 으로 가능 가능 하 하 하

Quiero enviar un SMS al usuario para enviar un mensaje al propietario del SMS

<#> Use [123456] as your verification code in Example App!
FA+9qCX9VSu

No enviaré un SMS No lo sé

. 자 Úložiště 하는 해시 코드 는 keystore 를 이용 하 rank hash 를 생성 한다 그래서 debugging 용과 release 용 을 구분 해 줘야 한다

hash nástroj 가져 오는 방법 은 2 가지 가 있는데 하나 는 herramienta clave h 이용 하 liad 가져 오는 방법 과 소스 코드 를 통하 ு 가져 오는 방법⁇ 있다

herramienta clave nástroj 가져 오는 방식 은 비추 한다 에러 가 나는 경우 도 있고 모든 정보 를 정확하게 치기도 힘들고 두 단계 를 거쳐야 한다

val TAG: String = "AppSignature"
private val HASH_TYPE = "SHA-256"
private val NUM_HASHED_BYTES = 9
private val NUM_BASE64_CHAR = 11

fun getAppSignatures(): ArrayList<String>? {
val appCodes: ArrayList<String> = ArrayList()
try {
// Get all package signatures for the current package
val packageName = packageName
val packageManager = packageManager
val signatures: Array<Signature> = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES).signatures

// For each signature create a compatible hash
for (signature in signatures) {
val hash = hash(packageName, signature.toCharsString())
if (hash != null) {
appCodes.add(String.format("%s", hash))
}
Log.v(TAG, "Hash $hash")
}
} catch (e: PackageManager.NameNotFoundException) {
Log.e(TAG, "Unable to find package to obtain hash.", e)
}
return appCodes
}

private fun hash(packageName: String, signature: String): String? {
val appInfo = "$packageName $signature"
try {
val messageDigest = MessageDigest.getInstance(HASH_TYPE)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
messageDigest.update(appInfo.toByteArray())
}
var hashSignature = messageDigest.digest()

// truncated into NUM_HASHED_BYTES
hashSignature = Arrays.copyOfRange(hashSignature, 0, NUM_HASHED_BYTES)
// encode into Base64
var base64Hash = Base64.encodeToString(hashSignature, Base64.NO_PADDING or Base64.NO_WRAP)
base64Hash = base64Hash.substring(0, NUM_BASE64_CHAR)
Log.d(TAG, String.format("pkg: %s -- hash: %s", packageName, base64Hash))
return base64Hash
} catch (e: NoSuchAlgorithmException) {
Log.e(TAG, "hash:NoSuchAlgorithm", e)
}
return null
}

getAppSignatures () 해서 디버그 빌드 와 릴리즈 빌드 를 해서 2 를 가져온 가져온다

override fun onCreate(savedInstanceState: Bundle?) {
val task = SmsRetriever.getClient(this).startSmsRetriever()
task.addOnSuccessListener {
val intentFilter = IntentFilter(SmsRetriever.SMS_RETRIEVED_ACTION)
registerReceiver(smsVerificationReceiver, intentFilter)
}

Quiero ir al correo electrónico con el mensaje “No quiero ir” [(d+)]“을 을 통해 []No lo sé

onDestroy 를 등록한 리시버 를 cancelar registro 하는 걸 잊지 말자 ~!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *