Google の SMS レトリーバー 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();
true EmailAddressIdentifiedSupported として設定するか、setAccountTypes のコメントを外すだけでも、ヒント リクエストは正しく機能し、電子メール アカウントを表示して名前と電子メールをアプリに返しますが、両方を有効にしても、資格情報 ID が電話番号になることはありません。1
これはフラグメントから呼び出されていますが、任意の場所からあらゆる種類の startIntentSenderForResult を呼び出しても違いはありません。