Petunjuk Nomor Telepon

Phone Number Hint API, library yang didukung oleh layanan Google Play, memberikan cara yang mudah untuk menampilkan nomor telepon pengguna (berbasis SIM) sebagai petunjuk.

Manfaat menggunakan Petunjuk Nomor Telepon mencakup hal berikut:

  • Tidak diperlukan permintaan izin tambahan
  • Tidak perlu lagi mengetik nomor telepon secara manual
  • Akun Google tidak diperlukan
  • Tidak terikat secara langsung dengan alur kerja login/pendaftaran
  • Dukungan 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

Dalam file build.gradle level project, sertakan repositori Maven Google di bagian buildscript dan allprojects:

buildscript {
  repositories {
    google()
    mavenCentral()
  }
}

allprojects {
  repositories {
    google()
    mavenCentral()
  }
}

Tambahkan dependensi layanan Google Play untuk Phone Hint API ke file build Gradle modul Anda, yang biasanya app/build.gradle:

  dependencies {
    implementation 'com.google.android.gms:play-services-auth:20.2.0'
  }

Cara kerjanya

Phone Number Hint API menggunakan PendingIntent untuk memulai alur. Setelah PendingIntent diluncurkan, pengguna akan diberi UI, dengan mencantumkan semua nomor telepon (berbasis SIM). Selanjutnya, pengguna dapat memilih nomor telepon yang ingin mereka gunakan atau membatalkan alur. Nomor telepon yang dipilih kemudian akan tersedia bagi developer untuk diambil dari Intent.

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

Membuat objek GetPhoneNumbeHintIntentRequest

Mulai dengan membuat objek GetPhoneNumberHintIntentRequest menggunakan metode GetPhoneNumberHintIntentRequest.Builder() yang disediakan. Objek permintaan ini selanjutnya dapat digunakan untuk mendapatkan Intent guna memulai alur Petunjuk Nomor Telepon.

Kotlin

val request: GetPhoneNumberHintIntentRequest = GetPhoneNumberHintIntentRequest.builder().build()

Java

GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();

Permintaan Petunjuk Nomor Telepon

Panggil SignInClient.getPhoneNumberHintIntent(), yang meneruskan objek GetPhoneNumberHintIntentRequest sebelumnya, untuk mengambil PendingIntent guna memulai alur Petunjuk Nomor Telepon.

Kotlin

val phoneNumberHintIntentResultLauncher: ActivityResultLauncher = ...

Identity.signInClient(activity)
  .getPhoneNumberHintIntent(request)
  .addOnSuccessListener(
      try {
          phoneNumberHintIntentResultLauncher.launch(request.getIntentSender())
      } 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: ActivityResultLauncher =
  registerForActivityResult(StartActivityForResult()) { result ->
      try {
          val phoneNumber = Identity.signInClient(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);
              }
          }
  });