Hinweis zur Telefonnummer

Die Phone Number Hint API ist eine Bibliothek, die auf Google Play-Diensten basiert. Sie bietet eine reibungslose Möglichkeit, die (SIM-basierten) Telefonnummern eines Nutzers als Hinweis anzuzeigen.

Die Verwendung von Phone Number Hint bietet unter anderem folgende Vorteile:

  • Es sind keine zusätzlichen Berechtigungsanfragen erforderlich.
  • Der Nutzer muss die Telefonnummer nicht manuell eingeben.
  • Es ist kein Google-Konto erforderlich.
  • Nicht direkt mit Anmelde- oder Registrierungsabläufen verknüpft
  • Breitere Unterstützung für Android-Versionen im Vergleich zu Autofill

Funktionsweise

Die Phone Number Hint API utilizes a PendingIntent to initiate the flow. Sobald das PendingIntent gestartet wurde, wird dem Nutzer eine Benutzeroberfläche angezeigt, auf der alle (SIM-basierten) Telefonnummern aufgeführt sind. Der Nutzer kann dann eine Telefonnummer auswählen, die er verwenden möchte, oder den Ablauf abbrechen. Die ausgewählte Telefonnummer wird dann dem Entwickler zur Verfügung gestellt, damit er sie aus dem Intentabrufen kann.

Benutzeroberfläche und Einstellungen für den Hinweis zur Telefonnummer
Abbildung 1. Benutzeroberfläche und Einstellungen für Phone Number Hint

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre App vorzubereiten.

Eigene Anwendung konfigurieren

Fügen Sie die Google Play-Dienste Abhängigkeit für die Phone Number Hint API der Gradle-Build-Datei Ihres Moduls hinzu, die üblicherweise app/build.gradle ist:

  apply plugin: 'com.android.application'

  ...

  dependencies {
    implementation 'com.google.android.gms:play-services-auth:21.5.1'
  }

GetPhoneNumberHintIntentRequest-Objekt erstellen

Erstellen Sie zuerst ein GetPhoneNumberHintIntentRequest-Objekt mit der bereitgestellten GetPhoneNumberHintIntentRequest.Builder() Methode. Dieses Anfrageobjekt kann dann verwendet werden, um ein Intent abzurufen, mit dem der Ablauf für Phone Number Hint gestartet wird.

Kotlin

val request: GetPhoneNumberHintIntentRequest = GetPhoneNumberHintIntentRequest.builder().build()

Java

GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();

Phone Number Hint anfordern

Rufen Sie SignInClient.getPhoneNumberHintIntent(), auf und übergeben Sie das vorherige GetPhoneNumberHintIntentRequest-Objekt, um das PendingIntent abzurufen, mit dem der Ablauf für Phone Number Hint gestartet wird.

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

ActivityResultLauncher phoneNumberHintIntentResultLauncher = ...

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 das Intent an 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

ActivityResultLauncher phoneNumberHintIntentResultLauncher =
  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);
              }
          }
  });