Play服务提示请求无法在请求时显示电话号码

18

当使用Google的短信接收器API的代码来首先获取设备的电话号码时,对话框会显示一个加载旋转器,然后很快消失。在onActivityResult中,resultCode为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();

如果我将EmailAddressIdentifiedSupported设置为true或者只是取消注释setAccountTypes,那么提示请求将正常工作,显示电子邮件帐户并将名称和电子邮件返回给应用程序,但启用两者不会导致凭据ID为电话号码,如1所示。
这是从片段调用的,但从任何位置调用startIntentSenderForResult的各种方式都没有任何区别。

{btsdaf} - Steven
{btsdaf} - sbaar
{btsdaf} - sbaar
代表Kai Jung - 我有完全相同的问题。你解决了这个问题吗?或者有任何更新吗?清除Play服务中的数据没有帮助。三星Galaxy S6,S7有这个问题,只有在Nexus 5x上工作。 - WhatsThePoint
我在我的全新Pixel 2 XL上遇到了相同的错误。即使在Oreo模拟器上,正常访问模拟器中的SIM卡也会显示一个电话号码。你知道这个问题什么时候会被修复吗@StevenSoneff? - sbaar
我已经实现了这个功能,看看吧,可能会对你有帮助。 https://dev59.com/n6nka4cB1Zd3GeqPHQKR#52975789 - Akshay Kumar Both
2个回答

13

它甚至在像素上都不起作用,我得到了错误代码 1002 - behelit
1
嗨 @behelit,这对我也不起作用。如果您有任何解决方案,请更新一下。 - Dhananjay
1
同样的问题出现在Pixel 3,Android 9.0上。结果为1002,没有可用的提示。 - James

11

resultCode = 1002 表示“ACTIVITY_RESULT_NO_HINTS_AVAILABLE”(指示没有可用的提示的活动结果代码)

API 参考文档 > CredentialsApi

要仅通过电话显示提示,请尝试仅使用 setPhoneNumberIdentifierSupported(true)

HintRequest hintRequest = new HintRequest.Builder()
.setPhoneNumberIdentifierSupported(true)
.build();

也尽量在其他账户的设备上进行测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接