使用意图请求获取用户号码不起作用?

dug*_*ggu 7 android gradle android-intent android-pendingintent google-play-services

我只是想用GetPhoneNumberHintIntentRequest替换来获取电话号码HintRequest。所以只是想遵循谷歌开发人员文档https://developers.google.com/identity/phone-number-hint/android#kotlin_2。但在遵循文档之后,我觉得该文档不完整。

在此输入图像描述

  val phoneNumberHintIntentResultLauncher: ActivityResultLauncher<Intent> =
    registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
        try {
            val phoneNumber = Identity.getSignInClient(requireActivity()).getPhoneNumberFromIntent(result.data)
        } catch(e: Exception) {
        }
  }
Run Code Online (Sandbox Code Playgroud)

因此,根据文档,您需要将意图传递给,phoneNumberHintIntentResultLauncher但内部没有方法GetPhoneNumberHintIntentRequest

在此输入图像描述

即使您看到 doc 然后您意识到您需要替换signInClientgetSignInClient.

如果有人知道上述问题,请告诉我或任何我可以实现目标的文档。

小智 2

最近一直面临这个问题。

请按如下方式更改结果启动器类型。

    val resultLauncher: ActivityResultLauncher<IntentSenderRequest> = registerForActivityResult(StartIntentSenderForResult()) { result ->
        try {
            val phoneNumber = Identity.getSignInClient(requireActivity()).getPhoneNumberFromIntent(result.data)
            // Do something with the number
        } catch (e: Exception) {
            Log.e(TAG, "Phone Number Hint failed")
        }
Run Code Online (Sandbox Code Playgroud)

并将意图启动为

    ...
    .addOnSuccessListener { request: PendingIntent ->
            try {
                resultLauncher.launch(IntentSenderRequest.Builder(request).build())
            } catch(e: Exception) {
                Log.e(TAG, "Launching the PendingIntent failed")
            }
        }
    ...
Run Code Online (Sandbox Code Playgroud)

该文件确实看起来不完整。

  • 它显示 16:在此设备上找不到电话号码。即使设备具有可用的有效号码。 (2认同)