Hinweis zur Telefonnummer

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

Die Verwendung von „Phone Number Hint“ bietet folgende Vorteile:

  • Es sind keine zusätzlichen Berechtigungsanfragen erforderlich
  • Nutzer müssen die Telefonnummer nicht mehr manuell eingeben
  • Es ist kein Google-Konto erforderlich
  • Nicht direkt mit Anmelde-/Registrierungsabläufen verbunden
  • Größere 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 Anwendung konfigurieren

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

  apply plugin: 'com.android.application'

  ...

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

Funktionsweise

Die Phone Number Hint API verwendet einen PendingIntent, um den Ablauf zu initiieren. Sobald der PendingIntent gestartet wurde, wird dem Nutzer eine Benutzeroberfläche angezeigt, in der alle (SIM-basierten) Telefonnummern aufgeführt sind. Der Nutzer kann dann eine Telefonnummer auswählen oder den Vorgang abbrechen. Die ausgewählte Telefonnummer wird dann dem Entwickler zur Verfügung gestellt, damit er sie aus dem Intent abrufen kann.

UI und Einstellungen für Hinweis auf Telefonnummern.
Abbildung 1. UI und Einstellungen für Hinweis auf Telefonnummern

GetPhoneNumbeHintIntentRequest-Objekt erstellen

Erstellen Sie zuerst mit der bereitgestellten GetPhoneNumberHintIntentRequest.Builder()-Methode ein GetPhoneNumberHintIntentRequest-Objekt. Dieses Anfrageobjekt kann dann verwendet werden, um ein Intent abzurufen, um den Ablauf für Telefonnummern-Hinweise 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 und den Ablauf für Telefonnummern-Hinweise 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 abrufen

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