Comment reconnaître l’activité de l’utilisateur avec la reconnaissance d’activité

Rendre une application sensible au contexte est l’un des meilleurs moyens d’offrir des services utiles à vos utilisateurs. Il existe plusieurs façons de le faire, notamment la création d’applications qui utilisent des clôtures géographiques et d’autres services de localisation. Cet article se concentre sur l’utilisation des services Google Play Reconnaissance d’activité API pour déterminer si l’utilisateur court, marche, dans un véhicule, fait du vélo ou reste immobile.

Connaître l’activité de l’utilisateur peut vous permettre de gérer l’expérience de l’application, par exemple en demandant si l’utilisateur commence à faire de l’exercice afin que vous puissiez en suivre avec Google Fit, ou en empêchant l’envoi de notifications lorsque l’utilisateur conduit. . Les fichiers source de ce didacticiel se trouvent sur GitHub.

1. Configuration du projet

La première chose à faire est de créer une nouvelle application Android. Pour cet exemple d’application, j’ai défini le SDK minimum sur 14 et a créé un vide par défaut Activity. Une fois qu’Android Studio a créé l’application de base, ouvrez le build.gradle et importez les services de lecture (la version 8.4 est la dernière au moment de la rédaction de cet article) sous le dependencies nœud.

Ensuite, créez une nouvelle classe, nommez-la ActivityRecognizedService, et faites-le prolonger IntentService. Lorsque les services Google Play renvoient l’activité de l’utilisateur, celle-ci sera envoyée à ce IntentService. Cela vous permettra d’exécuter la logique de votre application en arrière-plan au fur et à mesure que l’utilisateur passe sa journée.

Pour terminer la configuration, ouvrez AndroidManifest.xml. Vous devez déclarer ActivityRecognizedService et inclure le com.google.android.gms.permission.ACTIVITY_RECOGNITION autorisation pour votre application.

Maintenant que la structure de base de votre application est terminée, vous pouvez passer à l’étape suivante de connexion aux services Google Play et de demande de données d’activité.

2. Demande de reconnaissance d’activité

Pour utiliser les services Google Play, vous devez d’abord vous y connecter. Commencez par ouvrir MainActivity.java et mettre en œuvre le ConnectionCallbacks et OnConnectionFailedListener les interfaces. Vous devez également créer une variable membre de type GoogleApiClient pour conserver une référence au client API.

Après avoir implémenté les interfaces requises pour le GoogleApiClient, vous pouvez initialiser le client et vous connecter aux services Google Play dans onCreate() en demandant le ActivityRecognition.API et associer vos auditeurs au GoogleApiClient exemple.

Une fois la GoogleApiClient l’instance s’est connectée, onConnected() est appelé. Lorsque cela se produit, vous devez créer un PendingIntent qui va au IntentService que vous avez créé précédemment et transmettez-le au ActivityRecognitionApi. Vous devez également définir un intervalle pour la fréquence à laquelle l’API doit vérifier l’activité de l’utilisateur. Pour cet exemple d’application, nous utilisons une valeur de 3000, ou trois secondes, bien que dans une application réelle, vous souhaitiez peut-être vérifier moins fréquemment pour économiser l’énergie.

En relation :  Comment supprimer des comptes Google de votre téléphone et récupérer la confidentialité

À ce stade, votre application doit tenter de reconnaître l’activité de l’utilisateur toutes les trois secondes et envoyer ces données à ActivityRecognizedService.

3. Reconnaissance des activités de gestion

dans le onHandleIntent() méthode de ActivityRecognizedService, la première chose à faire est de valider que le reçu Intent contient des données de reconnaissance d’activité. Si c’est le cas, vous pouvez extraire le ActivityRecognitionResult du Intent pour voir quelles activités votre utilisateur pourrait effectuer. Vous pouvez récupérer une liste des activités possibles en appelant getProbableActivities() sur le ActivityRecognitionResult objet.

Pour cet exemple d’application, vous consignez simplement chaque activité qui a été détectée et affichez la confiance dans les services Google Play que l’utilisateur effectue cette activité en appelant getConfidence() sur un DetectedActivity exemple. Si une confiance est de 75 ou plus, alors il est sûr de supposer que l’utilisateur effectue cette activité. Pour illustrer cela, vous affichez également une notification lorsque votre application détecte que l’utilisateur marche avec une grande confiance.

Si vous exécutez cette application, lancez-vous, puis branchez votre appareil sur votre ordinateur, vous devriez voir un journal similaire au suivant dans votre console de développement.

Si vous allez vous promener, vous devriez recevoir une notification vous demandant si vous vous promenez. Si vous avez une application d’exercice, ce serait l’occasion idéale de fournir à votre utilisateur une action qui lui permettrait de commencer à suivre son exercice.

Notification reçue lorsque la marche est reconnue

Conclusion

Les services Google Play permettent de déterminer très facilement l’activité actuelle de l’utilisateur. Cela peut être extrêmement précieux pour rendre vos applications contextuelles et utiles pour vos utilisateurs, ce qui est idéal pour toutes les personnes impliquées. Avec seulement quelques lignes de code, vous pouvez également rendre vos applications plus intelligentes.

En relation :  Le père d'Android lance le téléphone essentiel

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.