startIntentSenderForResult 已弃用 Android [英] startIntentSenderForResult deprecated Android
本文介绍了startIntentSenderForResult 已弃用 Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
代码片段:
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()
}
}
我试图解决这个问题,来自文档 但我没看懂
I tried to resolve this, from documentation but I didn't understand
如果有人知道如何解决,请帮忙
谢谢
If anyone knows how to resolve it please help
Thanks
推荐答案
使用下面的代码 -
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()
}
}
对于 ActivityResult,使用 -
For ActivityResult, use -
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)
}
}
记住没有请求代码.
为每个特定任务使用不同的结果启动器.
Use different result launchers for every particular task.
这篇关于startIntentSenderForResult 已弃用 Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文