Phone Number Hint API, library yang didukung oleh layanan Google Play, menyediakan cara yang mudah untuk menampilkan nomor telepon pengguna (berbasis SIM) sebagai petunjuk.
Manfaat menggunakan Phone Number Hint meliputi hal berikut:
- Tidak diperlukan permintaan izin tambahan
- Tidak perlu pengguna mengetik nomor telepon secara manual
- Tidak memerlukan Akun Google
- Tidak terikat langsung dengan alur kerja login atau pendaftaran
- Dukungan yang lebih luas untuk versi Android dibandingkan dengan Isi Otomatis
Cara kerjanya
Phone Number Hint API menggunakan PendingIntent
untuk memulai alur. Setelah PendingIntent diluncurkan, pengguna akan melihat UI yang mencantumkan semua nomor telepon (berbasis SIM). Pengguna kemudian dapat memilih nomor telepon yang ingin digunakan atau membatalkan alur.
Nomor telepon yang dipilih kemudian akan tersedia bagi developer untuk
diambil dari Intent.
Untuk mempersiapkan aplikasi Anda, selesaikan langkah-langkah di bagian berikut ini.
Mengonfigurasi aplikasi Anda
Tambahkan dependensi layanan Google Play
untuk Phone Number Hint API ke
file build Gradle modul Anda,
yang biasanya adalah app/build.gradle:
apply plugin: 'com.android.application'
...
dependencies {
implementation 'com.google.android.gms:play-services-auth:21.5.1'
}
Membuat objek GetPhoneNumberHintIntentRequest
Mulai dengan membuat objek GetPhoneNumberHintIntentRequest menggunakan metode
yang disediakan GetPhoneNumberHintIntentRequest.Builder(). Objek permintaan ini kemudian dapat digunakan untuk mendapatkan Intent guna memulai alur Phone Number Hint.
Kotlin
val request: GetPhoneNumberHintIntentRequest = GetPhoneNumberHintIntentRequest.builder().build()
Java
GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();
Meminta Phone Number Hint
Panggil SignInClient.getPhoneNumberHintIntent(),
dengan meneruskan objek GetPhoneNumberHintIntentRequest sebelumnya,
untuk mengambil PendingIntent guna memulai alur Phone Number Hint.
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); });
Mengambil nomor telepon
Teruskan Intent ke SignInClient.getPhoneNumberFromIntent
untuk mengambil nomor telepon.
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); } } });