Android 播放服务提示请求无法在请求时显示电话号码

Android 播放服务提示请求无法在请求时显示电话号码,android,google-api,google-signin,credentials,google-smartlockpasswords,Android,Google Api,Google Signin,Credentials,Google Smartlockpasswords,当使用“从”代码首先获取设备的电话号码时,对话框会显示一个加载微调器,然后很快消失。在onActivityResult中,结果代码为1002,意图为空。不存在此错误代码的文档。我使用的确切代码是 email.setOnClickListener(v -> { HintRequest hintRequest = new HintRequest.Builder().setHintPickerConfig(new CredentialPickerConfig.B

当使用“从”代码首先获取设备的电话号码时,对话框会显示一个加载微调器,然后很快消失。在onActivityResult中,结果代码为1002,意图为空。不存在此错误代码的文档。我使用的确切代码是

        email.setOnClickListener(v -> {

        HintRequest hintRequest = new HintRequest.Builder().setHintPickerConfig(new CredentialPickerConfig.Builder().setPrompt(0).build())
                .setPhoneNumberIdentifierSupported(true)
                .setEmailAddressIdentifierSupported(false)
                //.setAccountTypes(IdentityProviders.GOOGLE)
                .build();

        PendingIntent intent =
                Auth.CredentialsApi.getHintPickerIntent(mGoogleApiClient, hintRequest);
        try {
            startIntentSenderForResult(intent.getIntentSender(),599,null,0,0,0,null);
        } catch (IntentSender.SendIntentException e) {
            Log.e("create", "Could not start hint picker Intent", e);
        }
    });


    mGoogleApiClient =  new GoogleApiClient.Builder(getContext())
            .enableAutoManage(getActivity(),connectionResult -> {
                Timber.e("conenction failed");
            })
            .addApi(Auth.CREDENTIALS_API)
            .addApi(Auth.GOOGLE_SIGN_IN_API)
            .build();
如果我将设置为true EmailAddressIdentifiedSupported,甚至只是取消对setAccountTypes的注释,那么提示请求将正常运行,显示电子邮件帐户并将名称和电子邮件返回给应用程序,但启用两者不会导致凭据id为中所示的电话号码


这是从片段中调用的,但是从任何位置调用各种StartEntSenderForResult都没有区别。

resultCode=1002表示
活动\u结果\u没有可用的提示。
(活动结果代码表示没有可用的提示)

要仅通过电话显示提示,请尝试仅使用
设置PhoneNumberIdentifier Supported(true)


还可以尝试在其他帐户的设备上进行测试。

谷歌提供的HintRequest api尚未完全实现其功能,而且有很多缺陷,它在谷歌设备上运行良好,正如开发者所说,“OEM问题是他们的pixel或nexus手机运行良好。”


许多应用程序仍在使用它来处理例外情况,比如个人资料页面上的myntra验证号码功能

您正在测试的设备是哪个制造商和运营商?读取某些设备的电话号码时出现一些问题。@Stevenson Eff A nexus 6 sprint。但是我可以通过simManager.getRawPhoneNumber()获取电话号码/国家代码。感谢您的快速响应。@StevenSoneff重新启动手机不起作用,但删除播放服务本地数据导致手机开始工作。希望这只是一个缓存问题,因为它是一个新的服务?如果显示微调器然后消失,我不愿意使用该功能。我宁愿它只是默默地失败,然后迷惑用户。代表Kai Jung-我有完全相同的问题。你解决问题了吗?或者这方面有什么更新吗?清除播放服务中的数据没有帮助。三星galaxy s6、s7有这个问题,只能在nexus 5x上使用。我的全新像素2 xl也出现了同样的错误。即使在oreo仿真器上,通常从仿真器访问sim卡时也会给出一个电话号码。你知道什么时候可以修复吗@Stevenson Effit甚至对像素不起作用,我得到错误
1002
Hi@behelit这对我也不起作用。如果你有任何解决方案,请更新相同的。像素3上的相同问题,android 9.0。结果1002没有可用的提示
HintRequest hintRequest = new HintRequest.Builder()
.setPhoneNumberIdentifierSupported(true)
.build();