【问题标题】:startIntentSenderForResult deprecated AndroidstartIntentSenderForResult 已弃用 Android
【发布时间】:2021-08-31 02:55:39
【问题描述】:

代码sn-p:

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()
    }
}

我试图从 documentation 解决这个问题,但我不明白

如果有人知道如何解决,请帮忙
谢谢

【问题讨论】:

    标签: android android-intent android-activity


    【解决方案1】:

    使用下面的代码 -

    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,使用 -

    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)
            }
        }
    

    记住没有请求代码。

    为每个特定任务使用不同的结果启动器。

    【讨论】:

      猜你喜欢
      • 2012-12-25
      • 2015-09-18
      • 2018-02-11
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多