Telefon Numarası İpucu

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Google Play Hizmetleri tarafından desteklenen bir kitaplık olan 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'nu kullanmanın sağladığı avantajlardan bazıları ş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
  • Doğrudan oturum açma/kaydolma iş akışlarına bağlı değil
  • Otomatik doldurmaya kıyasla Android sürümleri için daha fazla destek

Başlamadan önce

Uygulamanızı hazırlamak için aşağıdaki adımları tamamlayın.

Uygulamanızı yapılandırma

Telefon Numarası İpucu API'sının 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.4.0'
  }

İşleyiş şekli

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

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

Bir GetPhoneNumbeHintIntentRequest nesnesi oluşturun

Sağlanan GetPhoneNumberHintIntentRequest.Builder() yöntemini kullanarak bir GetPhoneNumberHintIntentRequest nesnesi oluşturarak başlayın. Bu istek nesnesi, 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ı İsteme

Telefon Numarası İpucu akışını başlatmak amacıyla PendingIntent öğesini almak için ö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 bilgisini SignInClient.getPhoneNumberFromIntent'e 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);
              }
          }
  });