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