Android O: vérification du numéro de téléphone avec des jetons SMS

Dans ce didacticiel, vous découvrirez la nouvelle fonctionnalité intéressante de jeton SMS dans Android O. Vous apprendrez à générer un jeton spécifique à l’application qui déclenchera une intention en attente lorsque l’appareil recevra pour la première fois un message contenant ce jeton afin de pour vérifier le numéro de téléphone.

Veuillez noter qu’au moment de la rédaction de cet article, les API Android O sont toujours dans leur troisième aperçu pour les développeurs, bien qu’elles soient définitives. (Nous ne savons toujours pas ce que signifie O!)

Qu’est-ce qu’un jeton SMS?

Un jeton SMS ou un mot de passe à usage unique est un mécanisme de sécurité utilisé pour authentifier ou vérifier un utilisateur. L’utilisateur entre son numéro de téléphone et un jeton de durée de vie limité est généré spécifiquement pour cet utilisateur. L’utilisateur reçoit ensuite le jeton sous forme de SMS sur son téléphone. Dans le cas d’Android O au moment d’écrire ces lignes, ce jeton spécifique à l’application n’expire pas, mais devient à la place invalide lorsqu’un autre est généré.

Pourquoi utiliser le jeton SMS d’Android O?

L’une des principales raisons pour lesquelles vous pourriez envisager d’utiliser le mécanisme de jeton SMS d’Android O est qu’il améliore l’expérience utilisateur de l’application. L’utilisateur n’a pas besoin de copier et coller le jeton du client SMS à vérifier. Au lieu de cela, l’appareil Android détecte automatiquement le jeton envoyé à l’appareil de l’utilisateur, puis déclenche le composant d’application dans l’intention associée à votre application (nous y reviendrons sous peu).

Mieux encore, cette fonctionnalité ne nécessite pas READ_SMS permission ou toute autre. Ce mécanisme améliore également la sécurité de l’utilisateur de votre application, car aucune autre application ne peut lire le message contenant le jeton sur l’appareil.

Dans ce didacticiel, vous apprendrez à utiliser cette nouvelle fonctionnalité dans l’API SMS d’Android O. Vous apprendrez à générer un jeton SMS spécifiquement pour votre application et à l’envoyer à un appareil. Nous utiliserons l’émulateur Android Studio pour simuler ce processus.

Conditions préalables

Pour suivre ce didacticiel, assurez-vous d’avoir téléchargé la plate-forme SDK Android 8.0 (O) sur votre ordinateur et que vous disposez déjà d’un émulateur qui cible cette version.

1. Générer le jeton spécifique à l’application

Pour commencer, je vais vous montrer comment générer un jeton spécifique à l’application qui est unique à votre application sur l’appareil de l’utilisateur.

Créer un nouveau projet Android Studio

Lancez Android Studio et créez un nouveau projet avec une activité vide appelée MainActivity.

En relation :  Créez une application intelligente avec Google Cloud Speech et les API Natural Language

Créer un nouveau projet Android Studio

Modifier le fichier build.gradle

Apportez les modifications suivantes à votre module d’application construire.gradle fichier.

Modifier le MainActivity Classe

Dans l’extrait de code ci-dessous, nous obtenons le SMSManager class puis appelez la méthode createAppSpecificSmsToken(). Cela fait exactement ce qu’il dit: il crée le jeton SMS spécifique à l’application. Cette méthode nécessite un PendingIntent qui contient l’activité à déclencher lorsqu’un SMS contenant ce jeton (une chaîne de 11 caractères) est reçu par l’appareil.

Sachez que, comme indiqué précédemment, le jeton généré est unique à votre application sur l’appareil de l’utilisateur. Si vous créez un autre jeton SMS, le second sera un jeton valide tandis que le premier sera ignoré.

Disposer l’écran

Voici un MainActivity fichier de mise en page configuré pour afficher le jeton SMS qui a été généré:

L’exécution de l’application à ce stade affichera le jeton SMS généré.

Exécuter l'application à ce stade

2. Recevez le jeton SMS

Ensuite, nous allons créer l’activité à déclencher lorsque notre appareil reçoit un message contenant le jeton SMS. Rien de spécifique aux jetons SMS ne se produit ici.

Disposer l’écran

Ici, nous créons la mise en page de l’activité que nous avons créée ci-dessus qui ne contient qu’un seul TextView.

Ensuite, nous testerons cette fonctionnalité à l’aide de l’émulateur Android Studio.

3. Testez le jeton SMS

Configurer l’émulateur pour envoyer des messages SMS

Vous pouvez utiliser votre émulateur pour simuler la réception d’un message SMS, mais vous devrez effectuer une petite configuration. Ouvrez votre émulateur, cliquez sur le dernier bouton de la barre de navigation de droite pour ouvrir la boîte de dialogue de contrôle étendu, puis sélectionnez le bouton de contrôle du téléphone.

Montrer comment utiliser l'émulateur pour simuler l'envoi d'un message SMS

À partir de cette interface, vous pouvez simuler la réception d’un appel téléphonique ou d’un SMS par votre appareil depuis un autre téléphone.

Envoyez le jeton

Assurez-vous d’avoir configuré votre émulateur qui cible Android 8.0 (O). Générez un jeton et entrez un message texte qui le contient. Cliquez ensuite sur le Envoyer le message bouton.

En relation :  Comment enregistrer un téléphone ou une tablette tombé dans l'eau
Envoi d'un message avec l'émulateur

Enfin, l’activité que nous avons spécifiée dans l’intention en attente est déclenchée immédiatement! Essayez à nouveau d’envoyer le message et voyez que cette fois, il apparaîtra dans le client SMS de l’appareil à la place, car ce n’est plus un jeton valide.

Activité de résultat de jeton

Utilisation d’un serveur

Pour une application de production, le jeton SMS sera généralement envoyé par un serveur principal. Ainsi, lors de l’utilisation d’un serveur, le client (votre application) doit faire une demande au serveur, y compris le jeton généré par l’application et le numéro de téléphone. Votre serveur recevra alors cette demande et renverra le jeton non modifié sous forme de message texte sur le téléphone de l’utilisateur. Votre application recevra alors ce jeton et lancera le composant enregistré dans l’intention en attente. Ce composant peut alors informer le serveur que la vérification du numéro de téléphone ou l’authentification de l’utilisateur a réussi.

Conclusion

Dans ce didacticiel, vous avez découvert l’impressionnante fonctionnalité de jeton SMS introduite dans Android O: qu’est-ce que c’est, ses avantages et comment l’utiliser dans une application Android.

Pour en savoir plus sur les API de SMS et de téléphone Android, y compris sur la façon de passer des appels depuis votre application, consultez mon didacticiel associé ici sur Envato Tuts +.

Et découvrez quelques-uns de nos autres cours et tutoriels sur le développement d’applications Android!

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.