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

sba*_*aar 12 android credentials google-api google-signin google-smartlockpasswords

当使用谷歌的短信检索器api中的代码首先获取设备的电话号码时,对话框会显示一个加载微调器,然后快速消失.在onActivityResult中,resultCode为1002,intent为空.没有此错误代码的文档.我正在使用的确切代码是

        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();
Run Code Online (Sandbox Code Playgroud)

如果我设置为true EmailAddressIdentifiedSupported或甚至只是取消注释setAccountTypes,则提示请求将正常显示电子邮件帐户并将名称和电子邮件返回给应用程序,但启用这两者不会导致凭据ID成为电话号码,如1

这是从一个片段调用的,但从任何位置调用各种startIntentSenderForResult没有任何区别.

acb*_*ter 11

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

API 参考文档 > CredentialsApi

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

HintRequest hintRequest = new HintRequest.Builder()
.setPhoneNumberIdentifierSupported(true)
.build();
Run Code Online (Sandbox Code Playgroud)

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


小智 7

谷歌提供的HintRequest api尚未完全实现其功能,并且存在很多问题,如开发人员所说,它在谷歌设备上运行良好,“ OEM认为他们的像素或连结手机运行良好。”

https://issuetracker.google.com/issues/77884951

https://github.com/googlesamples/android-credentials/issues/27

许多应用程序仍在使用它通过自己的逻辑来处理特殊情况,例如个人资料页面上的myntra验证号码功能。