L'API Suggerimento numero di telefono, una libreria basata su Google Play Services, offre un modo semplice per mostrare i numeri di telefono (basati su SIM) di un utente come suggerimento.
Di seguito sono riportati i vantaggi dell'utilizzo di Suggerimento numero di telefono:
- Non sono necessarie richieste di autorizzazioni aggiuntive
- Elimina la necessità per l'utente di digitare manualmente il numero di telefono
- Non è necessario un Account Google
- Non è direttamente collegato ai flussi di accesso o registrazione
- Supporto più ampio per le versioni di Android rispetto alla compilazione automatica
Come funziona
L'API Suggerimento numero di telefono utilizza un PendingIntent
per avviare il flusso. Una volta avviato il PendingIntent, all'utente verrà presentata un'interfaccia utente che elenca tutti i numeri di telefono (basati su SIM). L'utente può quindi scegliere di selezionare un numero di telefono da utilizzare o annullare il flusso.
Il numero di telefono selezionato verrà quindi reso disponibile allo sviluppatore per il recupero da Intent.
Per preparare l'app, completa i passaggi nelle sezioni seguenti.
Configura la tua app
Aggiungi la dipendenza Google Play Services
per l'API Suggerimento numero di telefono al
file di build Gradle del modulo,
in genere app/build.gradle:
apply plugin: 'com.android.application'
...
dependencies {
implementation 'com.google.android.gms:play-services-auth:21.5.1'
}
Crea un oggetto GetPhoneNumbeHintIntentRequest
Inizia creando un oggetto GetPhoneNumberHintIntentRequest utilizzando il
metodo GetPhoneNumberHintIntentRequest.Builder()
fornito. Questo oggetto di richiesta può essere utilizzato per ottenere un Intent per avviare il flusso di Suggerimento numero di telefono.
Kotlin
val request: GetPhoneNumberHintIntentRequest = GetPhoneNumberHintIntentRequest.builder().build()
Java
GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();
Richiedere il suggerimento del numero di telefono
Chiama SignInClient.getPhoneNumberHintIntent(),
passando l'oggetto GetPhoneNumberHintIntentRequest precedente,
per recuperare il PendingIntent per avviare il flusso di Suggerimento numero di telefono.
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); });
Recuperare il numero di telefono
Passa il Intent a SignInClient.getPhoneNumberFromIntent
per recuperare il numero di telefono.
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); } } });