Google Play Hizmetleri tarafından desteklenen bir kitaplık olan Phone Numberİpucu API'si, kullanıcının (SIM tabanlı) telefon numaralarını ipucu olarak göstermek için sorunsuz bir yol 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/kayıt iş akışlarına doğrudan bağlı değildir
- 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 açıklanan adımları tamamlayın.
Uygulamanızı yapılandırma
Proje düzeyindeki build.gradle
dosyanıza Google's Maven deposunu hem buildscript
hem de allprojects
bölümlerinize ekleyin:
buildscript {
repositories {
google()
mavenCentral()
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
Google Play Hizmetleri Telefon Bağımlılığını
module's Gradle build file
genellikle app/build.gradle
olmak üzere ekleyin:
dependencies {
implementation 'com.google.android.gms:play-services-auth:20.2.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ı listeleyen bir kullanıcı arayüzü sunulur. Kullanıcı daha sonra akışı kullanmak istediği telefon numarasını seçebilir veya akışı iptal edebilir.
Seçili telefon numarası daha sonra Intent
üzerinden alınması için geliştiriciye 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 için bir Intent
almak üzere 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
nesnesinden geçen SignInClient.getPhoneNumberHintIntent()
çağrısı yapın.
Kotlin
val phoneNumberHintIntentResultLauncher: ActivityResultLauncher = ... Identity.signInClient(activity) .getPhoneNumberHintIntent(request) .addOnSuccessListener( try { phoneNumberHintIntentResultLauncher.launch(request.getIntentSender()) } 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
numarasını SignInClient.getPhoneNumberFromIntent
adresine iletin.
Kotlin
val phoneNumberHintIntentResultLauncher: ActivityResultLauncher = registerForActivityResult(StartActivityForResult()) { result -> try { val phoneNumber = Identity.signInClient(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); } } });