当使用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的各种方式都没有任何区别。