Lev*_*evi 6 android android-intent android-activity
代码片段:
private fun requestHint() {
val hintRequest = HintRequest.Builder()
.setPhoneNumberIdentifierSupported(true)
.build()
val credentialsClient = Credentials.getClient(this)
val intent = credentialsClient.getHintPickerIntent(hintRequest)
try {
startIntentSenderForResult(
intent.intentSender,
CREDENTIAL_PICKER_REQUEST,
null, 0, 0, 0
)
} catch (e: IntentSender.SendIntentException) {
e.printStackTrace()
}
}
Run Code Online (Sandbox Code Playgroud)
我试图从文档中解决这个问题,但我不明白
如果有人知道如何解决请帮忙
谢谢
Vai*_*yal 16
使用下面的代码 -
private fun showPhoneNumberSuggestion() {
val hintRequest = HintRequest.Builder()
.setPhoneNumberIdentifierSupported(true)
.build()
val options = CredentialsOptions.Builder()
.forceEnableSaveDialog()
.build()
// Then pass the hint request object to
// credentialsClient.getHintPickerIntent()
// to get an intent to prompt the user to
// choose a phone number.
val credentialClient = Credentials.getClient(applicationContext, options)
val intent = credentialClient.getHintPickerIntent(hintRequest)
try {
val intentSenderRequest = IntentSenderRequest.Builder(intent.intentSender).build()
phonePickIntentResultLauncher.launch(intentSenderRequest)
} catch (e: IntentSender.SendIntentException) {
e.printStackTrace()
}
}
Run Code Online (Sandbox Code Playgroud)
对于 ActivityResult,请使用 -
private val phonePickIntentResultLauncher =
registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { result ->
if (result != null) {
val intent = result.data
val credential = intent?.getParcelableExtra<Credential>(Credential.EXTRA_KEY)
binding.inputPhone.setText(credential?.id)
}
}
Run Code Online (Sandbox Code Playgroud)
请记住,没有请求代码。
对每个特定任务使用不同的结果启动器。
2023 年更新:
前面提到的方法现已弃用。
现在要检索 PhoneNumber,我们必须SignInClient这样使用,
private fun showPhoneNumberSuggestion() {
val signInClient = Identity.getSignInClient(this)
signInClient.getPhoneNumberHintIntent(GetPhoneNumberHintIntentRequest.builder().build())
.addOnCanceledListener {
}
.addOnSuccessListener {
val intentSenderRequest = IntentSenderRequest.Builder(it).build()
phonePickIntentResultLauncher.launch(intentSenderRequest);
}
.addOnFailureListener {
}
}
private val phonePickIntentResultLauncher =
registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { result ->
if (result != null) {
val intent = result.data
val phoneNumber = intent!!.getStringExtra("phone_number_hint_result")
}
}
Run Code Online (Sandbox Code Playgroud)
确保导入此包中的所有内容,com.google.android.gms.auth.api
| 归档时间: |
|
| 查看次数: |
6692 次 |
| 最近记录: |