Google Play Hizmetleri tarafından desteklenen Telefon Numarası İpucu API'si, kullanıcıların (SIM tabanlı) telefon numaralarını ipucu olarak göstermenin sorunsuz bir yolunu sunar.
Telefon Numarası İpucunu kullanmanın avantajları şunlardır:
- Ek izin isteği gerekmez
- Kullanıcının telefon numarasını manuel olarak yazma zorunluluğunu ortadan kaldırır
- Google Hesabı gerekmez
- Oturum açma/kaydolma iş akışlarıyla doğrudan bağlantılı değildir
- Otomatik doldurmaya kıyasla Android sürümleri için daha geniş destek
Başlamadan önce
Uygulamanızı hazırlamak için aşağıdaki bölümlerde açıklanan 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
olur:
apply plugin: 'com.android.application'
...
dependencies {
implementation 'com.google.android.gms:play-services-auth:20.7.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ın listelendiği bir kullanıcı arayüzü sunulur. Ardından kullanıcı, kullanmak istediği telefon numarasını seçebilir veya akışı iptal edebilir.
Ardından, seçilen telefon numarası, Intent
'ten alınması için geliştiricinin kullanımına sunulur.

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 amacıyla PendingIntent
öğesini almak için önceki GetPhoneNumberHintIntentRequest
nesnesine geçerek SignInClient.getPhoneNumberHintIntent()
öğesini ç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ı Alınıyor
Telefon numarasını almak için Intent
hattını SignInClient.getPhoneNumberFromIntent
adresine 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); } } });