Phone Number Hint API, library yang didukung oleh layanan Google Play, menyediakan cara yang lancar untuk menampilkan nomor telepon pengguna (berbasis SIM) sebagai petunjuk.
Manfaat menggunakan Petunjuk Nomor Telepon meliputi hal berikut:
- Tidak ada permintaan izin tambahan yang diperlukan
- Dengan demikian pengguna tidak perlu mengetik nomor telepon secara manual
- Tidak perlu Akun Google
- Tidak terkait langsung dengan alur kerja login/pendaftaran
- Dukungan yang lebih luas untuk versi Android dibandingkan dengan Isi Otomatis
Sebelum memulai
Untuk mempersiapkan aplikasi Anda, selesaikan langkah-langkah di bagian berikut ini.
Mengonfigurasi aplikasi Anda
Menambahkan layanan Google Play
dependensi untuk Phone Number Hint API ke
file build Gradle modul,
yang biasanya adalah app/build.gradle
:
apply plugin: 'com.android.application'
...
dependencies {
implementation 'com.google.android.gms:play-services-auth:21.2.0'
}
Cara kerjanya
Phone Number Hint API menggunakan PendingIntent
untuk memulai alurnya. Setelah PendingIntent diluncurkan, pengguna akan
disajikan dengan UI, yang
mencantumkan semua nomor telepon (berbasis SIM). Pengguna dapat
memilih nomor telepon yang ingin mereka
gunakan atau batalkan alurnya.
Nomor telepon yang dipilih kemudian akan disediakan kepada pengembang untuk
ambil dari Intent
.
Membuat objek GetPhoneNumbeHintIntentRequest
Mulailah dengan membuat objek GetPhoneNumberHintIntentRequest
menggunakan
disediakan GetPhoneNumberHintIntentRequest.Builder()
. Objek permintaan ini kemudian dapat digunakan untuk mendapatkan Intent
guna memulai
Alur Petunjuk Nomor Telepon.
Kotlin
val request: GetPhoneNumberHintIntentRequest = GetPhoneNumberHintIntentRequest.builder().build()
Java
GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();
Meminta Petunjuk Nomor Telepon
Panggil SignInClient.getPhoneNumberHintIntent()
,
dengan meneruskan objek GetPhoneNumberHintIntentRequest
sebelumnya,
untuk mengambil PendingIntent
guna memulai alur Petunjuk Nomor Telepon.
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); } } });