Petunjuk Nomor Telepon

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.

UI dan Setelan Petunjuk Nomor Telepon.
Gambar 1. UI dan Setelan Petunjuk Nomor Telepon

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

ActivityResultLauncher phoneNumberHintIntentResultLauncher = ...

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

ActivityResultLauncher phoneNumberHintIntentResultLauncher =
  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);
              }
          }
  });