Hinweis zur Telefonnummer

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.

Benutzeroberfläche und Einstellungen für Hinweis zu Telefonnummern
Abbildung 1. Benutzeroberfläche und Einstellungen für Hinweis zu Telefonnummern

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

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

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);
              }
          }
  });