Telefon Numarası İpucu

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

Google Play Hizmetleri'ni ekleyin Telefon Numarası İpucu API'sinin modülün Gradle derleme dosyasını destekler. ve genellikle app/build.gradle:

  apply plugin: 'com.android.application'

  ...

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

İşleyiş şekli

Telefon Numarası İpucu API'si bir PendingIntent tıklayın. PendingIntent başlatıldıktan sonra, kullanıcı tüm (SIM tabanlı) telefon numaralarını listeleyen bir kullanıcı arayüzüyle gösterilir. Kullanıcı ardından kullanmak istedikleri telefon numarasını seçebilir veya akışı iptal edebilir. Seçilen telefon numarası, geliştiricinin kullanımına sunulur. Intent öğesinden alın.

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

GetPhoneNumbeHintIntentRequest nesnesi oluşturma

İlk olarak şunu kullanarak bir GetPhoneNumberHintIntentRequest nesnesi oluşturun: sağlanan GetPhoneNumberHintIntentRequest.Builder() yöntemidir. Bu istek nesnesi, daha sonra başlangıç noktası için bir Intent almak üzere kullanılabilir. Telefon Numarası İpucu akışı.

Kotlin

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

Java

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

Telefon Numarası İpucu İsteniyor

SignInClient.getPhoneNumberHintIntent() numaralı telefonu arayın, önceki GetPhoneNumberHintIntentRequest nesnesini geçerken Telefon Numarası İpucu akışını başlatmak için PendingIntent öğesini alı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

Intent sokağıyla SignInClient.getPhoneNumberFromIntent yönünde ilerleyin telefon numarasını almak için.

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