Anfragen zum Abrufen von Nutzeranmeldedaten können fehlschlagen, wenn ein Nutzer noch nicht gespeichert wurde. oder Nutzer, die sich noch nicht bei Ihrer App registriert haben. In diesen können Sie mit der Credentials API Anmeldehinweise abrufen, z. B. Name und E-Mail-Adresse des Nutzers. Verwende diese Hinweise, um die Anmeldedaten für deine App vorab auszufüllen und Anmeldeformulare, um den Onboardingprozess Ihrer App zu beschleunigen.
Unter Android 6.0 (Marshmallow) und höher muss Ihre App keine Geräte- oder Laufzeitberechtigungen, um Anmeldehinweise mit dem Credentials API
Hinweis
Konfigurieren Sie ein Android Studio-Projekt.
Anmeldehinweise abrufen
Konfigurieren Sie zuerst das Dialogfeld für die Hinweisauswahl, indem Sie
HintRequest
wird erstellt
-Objekt enthält. Übergeben Sie dann das HintRequest
-Objekt an
CredentialsClient.getHintPickerIntent()
um den Nutzer zur Auswahl einer E-Mail-Adresse aufzufordern. Beginnen Sie abschließend
Intent mit startIntentSenderForResult()
.
HintRequest hintRequest = new HintRequest.Builder()
.setHintPickerConfig(new CredentialPickerConfig.Builder()
.setShowCancelButton(true)
.build())
.setEmailAddressIdentifierSupported(true)
.setAccountTypes(IdentityProviders.GOOGLE)
.build();
PendingIntent intent = mCredentialsClient.getHintPickerIntent(hintRequest);
try {
startIntentSenderForResult(intent.getIntentSender(), RC_HINT, null, 0, 0, 0);
} catch (IntentSender.SendIntentException e) {
Log.e(TAG, "Could not start hint picker Intent", e);
}
Der Nutzer wird aufgefordert, eine E-Mail-Adresse auszuwählen.
Rufen Sie dann in der Methode onActivityResult()
der Aktivität die Hinweise aus der
Credential.EXTRA_KEY
Paket enthält, prüfen Sie, ob sich der Nutzer in Ihrer Nutzerdatenbank befindet.
und starten Sie mit dem Hinweis für die Anmeldedaten die entsprechende Aktivität.
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RC_HINT) { if (resultCode == RESULT_OK) { Credential credential = data.getParcelableExtra(Credential.EXTRA_KEY); Intent intent; // Check for the user ID in your user database. if (userDatabaseContains(credential.getId())) { intent = new Intent(this, SignInActivity.class); } else { intent = new Intent(this, SignUpNewUserActivity.class); } intent.putExtra("com.mycompany.myapp.SIGNIN_HINTS", credential); startActivity(intent); } else { Log.e(TAG, "Hint Read: NOT OK"); Toast.makeText(this, "Hint Read Failed", Toast.LENGTH_SHORT).show(); } } ... }
Anmeldeformular vorab ausfüllen
Wenn sich der Nutzer in Ihrer Nutzerdatenbank befindet und Sie die Anmeldung Ihrer App gestartet haben
Aktivität können Sie (optional) prüfen, ob das Credential
-Objekt eine ID enthält.
Token. In diesem Fall können Sie sich mit dem ID-Token anmelden.
ohne dass der Nutzer
ein Passwort eingeben muss.
Wenn das Credential
-Objekt kein ID-Token enthält (oder wenn Sie
ID-Token), füllen Sie die Anmeldefelder mit den Hinweisen aus, die Sie
die Nutzerabsicht verstehen.
public class SignInActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Credential credential = intent.getParcelableExtra("com.mycompany.myapp.SIGNIN_HINTS");
// Pre-fill ID field
mUsernameView.setText(credential.getId());
...
}
...
}
Anmeldeformular vorab ausfüllen
Wenn sich der Nutzer nicht in Ihrer Nutzerdatenbank befindet und Sie mit der Registrierung Ihrer App begonnen haben Aktivität beginnen, füllen Sie die Anmeldefelder mit den Anmeldehinweisen aus, die Sie zu die Absicht.
public class SignUpNewUserActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Credential credential = intent.getParcelableExtra("com.mycompany.myapp.SIGNIN_HINTS");
// Pre-fill sign-up fields
mUsernameView.setText(credential.getId());
mDisplaynameView.setText(credential.getName()); // Might be null.
...
}
...
}
Optional können Sie auch prüfen, ob das Credential
-Objekt ein
ID-Token mit dem
bestätigte E-Mail-Adresse. In diesem Fall können Sie den Schritt zur E-Mail-Bestätigung Ihrer Anwendung überspringen.
da die E-Mail-Adresse bereits von Google verifiziert wurde.