Hinweis zur Telefonnummer

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

Die Verwendung des Hinweises zur Telefonnummer bietet unter anderem folgende Vorteile:

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

Funktionsweise

Die Phone Number Hint API verwendet ein PendingIntent, um den Ablauf zu starten. Sobald der PendingIntent gestartet wurde, wird dem Nutzer eine Benutzeroberfläche mit allen (SIM-basierten) Telefonnummern angezeigt. Der Nutzer kann dann eine Telefonnummer auswählen, die er verwenden möchte, oder den Vorgang abbrechen. Die ausgewählte Telefonnummer wird dann dem Entwickler zur Verfügung gestellt, damit er sie aus der Intent abrufen kann.

Benutzeroberfläche und Einstellungen für Telefonnummer-Hinweise
Abbildung 1: Hinweis zur Telefonnummer – Benutzeroberfläche und Einstellungen

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

App konfigurieren

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

  apply plugin: 'com.android.application'

  ...

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

GetPhoneNumbeHintIntentRequest-Objekt erstellen

Erstellen Sie zuerst ein GetPhoneNumberHintIntentRequest-Objekt mit der bereitgestellten Methode GetPhoneNumberHintIntentRequest.Builder(). Dieses Anfrageobjekt kann dann verwendet werden, um ein Intent abzurufen und den Ablauf für den Telefonnummernhinweis zu starten.

Kotlin

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

Java

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

Hinweis zur Telefonnummer anfordern

Rufen Sie SignInClient.getPhoneNumberHintIntent() auf und übergeben Sie das vorherige GetPhoneNumberHintIntentRequest-Objekt, um PendingIntent abzurufen und den Ablauf für den Telefonnummernhinweis 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

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 wird abgerufen

Übergeben Sie die 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);
              }
          }
  });