Google Play Hizmetleri tarafından desteklenen bir kitaplık olan Telefon Numarası İpucu API'si, kullanıcıların (SIM tabanlı) telefon numaralarını ipucu olarak göstermenin sorunsuz bir yolunu sunar.
Telefon Numarası İpucu'nu kullanmanın avantajları arasında şunlar yer alır:
- Ek izin isteği gerekmiyor
- Kullanıcının telefon numarasını manuel olarak yazma ihtiyacını ortadan kaldırır
- Google Hesabı gerekli değildir
- Doğrudan oturum açma/kaydolma iş akışlarına bağlı değildir
- 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 bölümlerde verilen adımları tamamlayın.
Uygulamanızı yapılandırma
Telefon Numarası İpucu API'sinin 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:21.0.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.
Seçilen telefon numarası, Intent
'ten alması için geliştiriciye sunulur.
GetPhoneNumbeHintIntentRequest nesnesi oluşturma
Sağlanan GetPhoneNumberHintIntentRequest.Builder()
yöntemini kullanarak bir GetPhoneNumberHintIntentRequest
nesnesi oluşturarak başlayın. Daha sonra bu istek nesnesi, Telefon Numarası İpucu akışını başlatmak için bir Intent
almak amacıyla 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 amacıyla önceki GetPhoneNumberHintIntentRequest
nesnesine geçerek SignInClient.getPhoneNumberHintIntent()
numaralı telefonu arayı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
kartını SignInClient.getPhoneNumberFromIntent
adresine aktarın.
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); } } });