Phone Number Hint API, eine Bibliothek, die von Google Play-Diensten unterstützt wird, bietet eine einfache Möglichkeit, die (SIM-basierte) Telefonnummer eines Nutzers als Hinweis anzuzeigen.
Der Telefonnummernhinweis bietet unter anderem folgende Vorteile:
- Es sind keine zusätzlichen Berechtigungsanfragen erforderlich.
- Nutzer müssen die Telefonnummer nicht mehr manuell eingeben
- Es wird kein Google-Konto benötigt
- Nicht direkt an Anmelde-/Anmelde-Workflows gebunden
- Bessere Unterstützung für Android-Versionen im Vergleich zu Autofill
Hinweis
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre App vorzubereiten.
Eigene App konfigurieren
Google Play-Dienste hinzufügen
für die Phone Number Hint API mit Ihrem
Gradle-Build-Datei des Moduls
Dies ist üblicherweise app/build.gradle
:
apply plugin: 'com.android.application'
...
dependencies {
implementation 'com.google.android.gms:play-services-auth:21.2.0'
}
Funktionsweise
Die Phone Number Hint API verwendet eine PendingIntent
um den Vorgang zu starten. Sobald der PendingIntent gestartet wurde, wird der Nutzer
wird eine Benutzeroberfläche mit allen (SIM-basierten) Telefonnummern angezeigt. Der Nutzer kann
und wähle eine Telefonnummer aus, die er verwenden möchte, oder brich den Vorgang ab.
Die ausgewählte Telefonnummer wird dem Entwickler dann für folgende Zwecke zur Verfügung gestellt:
aus Intent
abrufen.
GetPhoneNumbeHintIntentRequest-Objekt erstellen
Erstellen Sie zuerst ein GetPhoneNumberHintIntentRequest
-Objekt mithilfe der
hat GetPhoneNumberHintIntentRequest.Builder()
angegeben
. Mit diesem Anfrageobjekt kann dann ein Intent
abgerufen werden, um den
Ablauf für Telefonnummern-Hinweise.
Kotlin
val request: GetPhoneNumberHintIntentRequest = GetPhoneNumberHintIntentRequest.builder().build()
Java
GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();
Hinweis zur Anforderung einer Telefonnummer
Rufen Sie uns unter SignInClient.getPhoneNumberHintIntent()
an.
und übergeben das vorherige GetPhoneNumberHintIntentRequest
-Objekt.
um die PendingIntent
abzurufen, um den Vorgang für den Telefonnummern-Hinweis zu starten.
Kotlin
val phoneNumberHintIntentResultLauncher = ... Identity.getSignInClient(activity) .getPhoneNumberHintIntent(request) .addOnSuccessListener { result: PendingIntent -> try { phoneNumberHintIntentResultLauncher.launch( IntentSenderRequest.Builder(result).build() ) } 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 wird abgerufen
Übergeben Sie den Intent
nach SignInClient.getPhoneNumberFromIntent
um die Telefonnummer abzurufen.
Kotlin
val phoneNumberHintIntentResultLauncher = registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { result -> try { val phoneNumber = Identity.getSignInClient(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); } } });