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.1'
}
Nasıl çalışır?
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.

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
ActivityResultLauncherphoneNumberHintIntentResultLauncher = ... 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
ActivityResultLauncherphoneNumberHintIntentResultLauncher = 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); } } });