Telefon Numarası İpucu

Google Play Hizmetleri tarafından desteklenen Telefon Numarası İpucu API'si, kullanıcını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 gereksinimini ortadan kaldırır.
  • Google hesabı gerekmez
  • Oturum açma/kayıt iş akışlarına doğrudan bağlı değil
  • Android sürümleri için otomatik doldurmaya kıyasla daha fazla 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ı genellikle modülünüzün Gradle derleme dosyasına ekleyin. Bu dosya, genellikle app/build.gradle şeklindedir:

  apply plugin: 'com.android.application'

  ...

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

İşleyiş şekli

Telefon Numarası İpucu API'si, akışı başlatmak için bir PendingIntent kullanır. BekleyenIntent başlatıldıktan sonra kullanıcıya tüm kullanıcı arayüzü (SIM tabanlı) telefon numaralarının listelendiği bir kullanıcı arayüzü sunulur. Ardından, kullanıcı kullanmak istediği bir telefon numarasını seçebilir veya akışı iptal edebilir. Seçili telefon numarası daha sonra Intent üzerinden alması için geliştiriciye sunulur.

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, Intent numarasını almak için Telefon Numarası İpucu akışını başlatmak için kullanılabilir.

Kotlin

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

Java

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

Telefon Numarası İsteme İpucu

Telefon Numarası İpucu akışını başlatmak için PendingIntent öğesini almak üzere önceki GetPhoneNumberHintIntentRequest nesnesini geçirerek 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ını Alma

Telefon numarasını almak için Intent numarasını SignInClient.getPhoneNumberFromIntent numaralı telefona iletin.

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