Die Phone Hint API, eine Bibliothek mit Google Play-Diensten, bietet eine reibungslose Möglichkeit, die (SIM-basierten) Telefonnummern eines Nutzers als Hinweis anzuzeigen.
Der Telefonnummern-Hinweis bietet folgende Vorteile:
- Es sind keine zusätzlichen Berechtigungsanfragen erforderlich
- Der Nutzer muss die Telefonnummer dann nicht mehr manuell eingeben.
- Kein Google-Konto erforderlich
- Nicht direkt an Anmelde-/Anmeldeworkflows gebunden
- Größere Unterstützung für Android-Versionen im Vergleich zur Funktion „Automatisches Ausfüllen“
Hinweis
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre App vorzubereiten.
Eigene App konfigurieren
Fügen Sie in der Datei build.gradle
auf Projektebene das Maven-Repository von Google in die Abschnitte buildscript
und allprojects
ein:
buildscript {
repositories {
google()
mavenCentral()
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
Fügen Sie der Gradle-Build-Datei des Moduls (in der Regel app/build.gradle
) die Abhängigkeit für die Google Play-Dienste für die Phone Hint API hinzu:
dependencies {
implementation 'com.google.android.gms:play-services-auth:20.2.0'
}
Funktionsweise
Die Number Hint API verwendet einen PendingIntent
, um den Vorgang zu starten. Nach dem Start des PendingIntent-Objekts wird dem Nutzer eine UI mit allen (SIM-basierten) Telefonnummern angezeigt. Der Nutzer kann dann eine Telefonnummer auswählen oder den Vorgang abbrechen.
Die ausgewählte Telefonnummer wird dem Entwickler zur Verfügung gestellt, damit er sie aus der Intent
abrufen kann.

GetPhoneNumbeHintIntentRequest-Objekt erstellen
Erstellen Sie zuerst ein GetPhoneNumberHintIntentRequest
-Objekt mit der bereitgestellten GetPhoneNumberHintIntentRequest.Builder()
-Methode. Mit diesem Anfrageobjekt kann dann ein Intent
abgerufen werden, um den Hinweisvorgang für die Telefonnummer zu starten.
Kotlin
val request: GetPhoneNumberHintIntentRequest = GetPhoneNumberHintIntentRequest.builder().build()
Java
GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();
Hinweis auf Telefonnummer wird angefordert
Rufen Sie SignInClient.getPhoneNumberHintIntent()
auf und übergeben Sie das vorherige GetPhoneNumberHintIntentRequest
-Objekt, um die PendingIntent
abzurufen, um den Hinweis zum Telefonnummernhinweis zu starten.
Kotlin
val phoneNumberHintIntentResultLauncher: ActivityResultLauncher = ... Identity.signInClient(activity) .getPhoneNumberHintIntent(request) .addOnSuccessListener( try { phoneNumberHintIntentResultLauncher.launch(request.getIntentSender()) } catch(e: Exception) { Log.e(TAG, “Launching the PendingIntent failed”) }) .addOnFailureListener( Log.e(TAG, “Phone Number Hint failed”) )
Java
ActivityResultLauncherphoneNumberHintIntentResultLauncher = ... Identity.getSignInClient(activity) .getPhoneNumberHintIntent(request) .addOnSuccessListener( result -> { try { phoneNumberHintIntentResultLauncher.launch(result.getIntentSender()); } catch(Exception e) { Log.e(TAG, “Launching the PendingIntent failed”, e); } }) .addOnFailureListener(e -> { Log.e(TAG, “Phone Number Hint failed”, e); });
Telefonnummer abrufen
Übergeben Sie Intent
an SignInClient.getPhoneNumberFromIntent
, um die Telefonnummer abzurufen.
Kotlin
val phoneNumberHintIntentResultLauncher: ActivityResultLauncher = registerForActivityResult(StartActivityForResult()) { result -> try { val phoneNumber = Identity.signInClient(activity).getPhoneNumberFromIntent(result.data) } catch(e: Exception) { Log.e(TAG, "Phone Number Hint failed") } }
Java
ActivityResultLauncherphoneNumberHintIntentResultLauncher = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback () { @Override public void onActivityResult(ActivityResult result) { try { String phoneNumber = Identity.getSignInClient(activity).getPhoneNumberFromIntent(result.getData()); } catch { Log.e(TAG, “Phone Number Hint failed”, e); } } });