La API de Phone Number Hint, una biblioteca con la tecnología de los Servicios de Google Play, ofrece una forma sencilla de mostrar los números de teléfono de un usuario (basados en SIM) a modo de pista.
Estos son algunos de los beneficios de usar Phone Number Hint:
- No se necesitan solicitudes de permisos adicionales
- Elimina la necesidad de que el usuario escriba el número de teléfono de forma manual.
- No se necesita una Cuenta de Google
- No está directamente vinculada a los flujos de trabajo de registro/registro.
- Mayor compatibilidad con las versiones de Android en comparación con Autocompletar
Antes de comenzar
Para preparar tu app, completa los pasos que se indican en las siguientes secciones.
Cómo configurar tu app
Agrega los Servicios de Google Play.
para la API de Phone Number Hint en tu
archivo de compilación de Gradle del módulo,
que suele ser app/build.gradle
:
apply plugin: 'com.android.application'
...
dependencies {
implementation 'com.google.android.gms:play-services-auth:21.2.0'
}
Cómo funciona
La API de Phone Number Hint usa un PendingIntent
.
para iniciar el flujo. Una vez que se haya iniciado el PendingIntent, el usuario podrá
presenta una IU, en la que se enumeran todos los números de teléfono (basados en SIM). El usuario puede
y, luego, elige el número de teléfono que quiera usar o cancela el flujo.
El número de teléfono seleccionado estará disponible para el desarrollador para
que se recuperan de Intent
.
Crea un objeto GetPhoneNumbeHintIntentRequest
Para comenzar, crea un objeto GetPhoneNumberHintIntentRequest
con el elemento
proporcionado GetPhoneNumberHintIntentRequest.Builder()
. Este objeto de solicitud se puede usar para obtener un Intent
a fin de iniciar el
Flujo de sugerencias de números de teléfono.
Kotlin
val request: GetPhoneNumberHintIntentRequest = GetPhoneNumberHintIntentRequest.builder().build()
Java
GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();
Solicitud de sugerencia de número de teléfono
Llamada a SignInClient.getPhoneNumberHintIntent()
,
pasando el objeto GetPhoneNumberHintIntentRequest
anterior,
para recuperar el objeto PendingIntent
a fin de iniciar el flujo de sugerencia de número de teléfono.
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); });
Cómo recuperar el número de teléfono
Pasa Intent
a SignInClient.getPhoneNumberFromIntent
.
para recuperar el número de teléfono.
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); } } });