18

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 を呼び出しても違いはありません。

4

2 に答える 2