Telefon Numarası İpucu

Google Play Hizmetleri tarafından desteklenen bir kitaplık olan Telefon Numarası İpucu API'si, kullanıcıların (SIM tabanlı) telefon numaralarını ipucu olarak göstermenin sorunsuz bir yolunu sunar.

Telefon Numarası İpucu kullanmanın avantajları şunlardır:

  • Ek izin isteği gerekmez.
  • Kullanıcının telefon numarasını manuel olarak yazma ihtiyacını ortadan kaldırır
  • Google Hesabı gerekmez
  • Oturum açma/kaydolma iş akışlarına doğrudan bağlı değil
  • Otomatik doldurmaya kıyasla Android sürümleri için daha kapsamlı destek

Başlamadan önce

Uygulamanızı hazırlamak için aşağıdaki bölümlerde yer alan adımları tamamlayın.

Uygulamanızı yapılandırma

Telefon Numarası İpucu API'si için Google Play Hizmetleri bağımlılığını modülünüzün Gradle derleme dosyasına ekleyin. Bu dosya genellikle app/build.gradle olan:

  apply plugin: 'com.android.application'

  ...

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

İşleyiş şekli

Telefon Numarası İpucu API'si, akışı başlatmak için bir PendingIntent kullanır. PendingIntent başlatıldıktan sonra, kullanıcıya tüm (SIM tabanlı) telefon numaralarını listeleyen bir kullanıcı arayüzü gösterilir. Ardından kullanıcı, kullanmak istediği telefon numarasını seçebilir ya da akışı iptal edebilir. Ardından, seçilen telefon numarası geliştiricinin Intent'ndan alması için kullanılabilir hale gelir.

Telefon Numarası İpucu Kullanıcı Arayüzü ve Ayarlar.
Şekil 1. Telefon Numarası İpucu Kullanıcı Arayüzü ve Ayarları

GetPhoneNumbeHintIntentRequest nesnesi oluşturma

Sağlanan GetPhoneNumberHintIntentRequest.Builder() yöntemini kullanarak bir GetPhoneNumberHintIntentRequest nesnesi oluşturarak başlayın. Bu istek nesnesi, daha sonra Telefon Numarası İpucu akışını başlatmak üzere bir Intent almak için kullanılabilir.

Kotlin

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

Java

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

Telefon Numarası İpucu İsteniyor

Telefon Numarası İpucu akışını başlatmak için PendingIntent öğesini almak üzere önceki GetPhoneNumberHintIntentRequest nesnesinde iletilen SignInClient.getPhoneNumberHintIntent() yöntemini çağırın.

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

Telefon Numarası Alma

Telefon numarasını almak için Intent kartını SignInClient.getPhoneNumberFromIntent adlı kullanıcıya verin.

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