Hinweis zur Telefonnummer

Die Phone Hint API ist eine Bibliothek auf Basis von Google Play-Diensten, die Nutzern eine reibungslose Möglichkeit bieten, ihre (SIM-basierten) Telefonnummern als Hinweis anzuzeigen.

Die Verwendung des Telefonnummern-Hinweiss bietet unter anderem folgende Vorteile:

  • Es sind keine zusätzlichen Berechtigungsanfragen erforderlich.
  • Nutzer müssen diese Telefonnummer dann nicht mehr manuell eingeben
  • Kein Google-Konto erforderlich
  • Nicht direkt an Anmelde-/Anmeldungsworkflows gebunden
  • Breitere 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 der Gradle-Datei des Moduls, die üblicherweise app/build.gradle enthält, die Abhängigkeit für die Google Play-Dienste für die Phone Hint API hinzu:

  apply plugin: 'com.android.application'

  ...

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

Funktionsweise

Die Phone Hint API verwendet einen PendingIntent, um den Vorgang zu starten. Nach dem Start des Ausstehenden Intents 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 dann zum Abrufen über Intent zur Verfügung gestellt.

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

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 Hinweis 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 PendingIntent abzurufen, um den Hinweisvorgang für die Telefonnummer 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);
              }
          }
  });