Accueil Médias sociaux Développement d'applications Android: Comment débuter avec Location - Dummies

Développement d'applications Android: Comment débuter avec Location - Dummies

Table des matières:

Vidéo: TUTO Android : Votre première application Android (mise en oeuvre avec Android Studio) 2025

Vidéo: TUTO Android : Votre première application Android (mise en oeuvre avec Android Studio) 2025
Anonim

De nombreuses applications Android peuvent offrir un avantage appréciable à leurs utilisateurs en leur apportant une expérience utilisateur. Qu'il s'agisse de montrer aux utilisateurs leur emplacement sur une carte ou quelque chose de plus complexe comme fournir des notifications d'arrière-plan basées sur le GPS, l'ajout de services de localisation à votre application est souvent attendu par les utilisateurs.

Il existe plusieurs façons d'ajouter un emplacement à vos applications Android. Dans Lollipop, certains des plus communs sont

  • Affiche l'adresse actuelle de la ville ou de la rue. C'est ce qu'on appelle le géocodage inverse.

  • Suivre activement la localisation de l'utilisateur, par exemple en affichant l'emplacement de l'utilisateur sur une carte.

  • Configurez un geofence pour recevoir une notification lorsqu'un utilisateur arrive ou quitte un emplacement.

  • Suivre l'emplacement des utilisateurs pour effectuer une reconnaissance d'activité et déterminer s'ils marchent, font de la bicyclette ou conduisent.

  • Détecte si un utilisateur se trouve à proximité d'un iBeacon en utilisant Bluetooth.

Cet article vous montre l'une des utilisations les plus courantes de l'emplacement, à savoir surveiller l'emplacement des utilisateurs et leur afficher leur adresse actuelle dans un TextView.

Vous devez effectuer quatre opérations pour configurer des emplacements dans votre application:

  1. Mettez à jour votre configuration de build.

  2. Ouvrez une connexion à Google Play.

  3. Abonnez-vous aux mises à jour de localisation.

  4. Afficher l'adresse de l'utilisateur.

Comment mettre à jour votre configuration de compilation

Android dispose d'un ancien jeu d'API de localisation intégré à l'OS sous Android. paquet de localisation. Ces API ne sont plus gérées, vous devez donc utiliser les nouvelles API Google Play Services pour obtenir l'emplacement de l'utilisateur.

Pour ajouter l'API Google Play Services Location à votre projet, placez la dépendance suivante dans votre build. fichier de configuration:

dépendances { compile ' com. Google. Android. gms: play-services-location: 6. 5. 87 ' }

Ensuite, ajoutez ce qui suit à votre AndroidManifest. xml:

 " autorisation android. ACCESS_COARSE_LOCATION " />  " permission android. ACCESS_FINE_LOCATION " />  " com. Google. Android.gms. Version " android: valeur = " @ entier / google_play_services_version " />

L'autorisation ACCESS_COARSE_LOCATION utilise les informations Wi-Fi et les informations relatives à la tour de téléphonie cellulaire, lorsqu'elles sont disponibles, pour fournir des mises à jour de la taille d'un bloc de ville. L'autorisation ACCESS_FINE_LOCATION peut vous fournir beaucoup plus d'informations à haute résolution en utilisant le GPS du téléphone, mais au détriment de la consommation de la batterie.Si votre application n'a besoin que d'un emplacement approximatif, vous pourriez penser qu'il est logique de ne demander que l'autorisation ACCESS_COARSE_LOCATION, mais la plupart des applications voudront les deux.

Vous devriez normalement demander les deux autorisations car vous utiliserez un Localisateur de Localité appelé FusedLocationProvider, qui choisit automatiquement entre le Wi-Fi, la tour cellulaire et les fournisseurs de localisation GPS pour vous donner la meilleure précision au moindre coût pour votre batterie. Si vous savez que vous n'aurez jamais besoin d'informations détaillées sur l'emplacement, vous pouvez envisager de supprimer l'autorisation ACCESS_FINE_LOCATION, mais sachez que votre application risque de ne pas fonctionner correctement dans les endroits sans tour de téléphonie mobile ou Wi-Fi.

La balise de métadonnées est nécessaire chaque fois que vous utilisez la bibliothèque du service Google Play.

Comment ouvrir une connexion à Google Play

Les API de localisation sont assez simples, mais pour les utiliser, vous devez configurer les API Google Play Services, ce qui est un peu plus compliqué à utiliser.

Pour établir une connexion avec Google Play Services, ajoutez ce qui suit à votre activité ou fragment:

// Le client de l'API Google, pour les services de localisation GoogleApiClient googleApiClient; @Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); googleApiClient = nouveau GoogleApiClient. Builder (getActivity ()). addConnectionCallbacks (this). addOnConnectionFailedListener (this). addApi (API LocationServices.). construire(); …} @Override public void onStart () {super. onStart (); googleApiClient. relier(); } @Overide public void onStop () { googleApiClient. déconnecter (); super. onStop ();}

Ce code crée un nouvel objet GoogleApiClient dans votre onCreate () pour se connecter à Google Play Services, puis il tente de se connecter à votre onStart () et de se déconnecter dans votre onStop (). GoogleApiClient a besoin d'un objet de rappel qu'il peut informer lorsqu'une connexion a été établie. Vous devez donc ajouter des rappels à votre activité ou fragment. Vous pouvez ajouter les rappels à TaskEditFragment à n'importe quelle activité de fragment.

public class TaskEditFragment extends Fragment implémente ConnectionCallbacks, OnConnectionFailedListener { @Override public void onConnected (Bundle connectionHint) { // Connecté à Google Play prestations de service! // C'est ici que vous commencerez à demander l'emplacement // mises à jour. } @Override public void onConnectionSuspended (cause int) { // La connexion Google Play a été interrompue. // Désactiver les composants de l'interface utilisateur qui dépendent des // API Google jusqu'à ce que onConnected () soit appelé. // // Cet exemple n ' ' a besoin de faire quoi que ce soit ici. } @Override public void onConnectionFailed (résultat ConnectionResult) { // Ce rappel est important pour gérer les erreurs // qui peuvent survenir lors d'une tentative de connexion avec > // Google. // // Si votre application a gagné ' ne fonctionne pas correctement sans // mises à jour, alors ' est important pour gérer la connexion // erreurs correctement.Voir // // développeur. Android. com / google / auth / api-client. html // pour plus d'informations sur la gestion des erreurs lorsque // connexion à Google. // // Les informations de localisation sont facultatives pour cette application, donc // les erreurs de connexion peuvent être ignorées en toute sécurité ici. } } Félicitations! Vous avez maintenant correctement configuré une connexion à Google Play Services qui se déconnecte automatiquement lorsque votre activité ou fragment est arrêté. L'étape suivante consiste à demander des mises à jour de localisation.

Comment s'abonner aux mises à jour de localisation

Vous avez traversé la partie difficile. Une fois que vous avez réussi à vous connecter à Google Play Services, vous pouvez commencer à écouter les mises à jour de localisation.

Vous devez d'abord indiquer à l'API de localisation la fréquence et l'exactitude des mises à jour de votre position. Si vous devez afficher l'emplacement actuel des utilisateurs sur une carte, vous souhaiterez peut-être des mises à jour très précises et rapides, afin que les utilisateurs puissent voir où ils se trouvent lorsqu'ils se déplacent. La plupart des applications nécessitent probablement des mises à jour moins fréquentes, et c'est ce que vous utiliserez dans cet exemple.

Ajoutez le champ suivant à votre fragment ou activité:

// Le paramètre LocationRequest définit la fréquence à laquelle nous avons besoin d'emplacement // met à jour LocationRequest locationRequest = new LocationRequest (). setInterval (30000). setPriority (LocationRequest. PRIORITY_BALANCED_POWER_ACCURACY);

Cette localisationRequest est configurée pour demander de nouvelles mises à jour de position environ toutes les 30 secondes, et pour essayer d'équilibrer une bonne précision avec une consommation d'énergie correcte. Si vous souhaitez réduire la consommation de la batterie, essayez PRIORITY_LOW_POWER ou, si vous voulez une précision supérieure, essayez PRIORITY_HIGH_ACCURACY. Vous pouvez même utiliser PRIORITY_NO_POWER pour les applications qui se mettent à jour très rarement en arrière-plan et qui veulent juste récupérer les mises à jour de localisation demandées par les autres applications! Consultez LocationRequest sur le site développeur Android pour plus d'informations sur les différentes options que vous pouvez utiliser.

Pour commencer à écouter les mises à jour de position, ajoutez ce qui suit à la méthode onConnected () que vous venez de créer:

@Overide public void onConnected (Bundle connectionHint) {// Connecté aux services Google Play! // Abonnez-vous aux mises à jour de localisation

FusedLocationApi. requestLocationUpdates ( googleApiClient, locationRequest, this); } Ceci demande à FusedLocationApi de commencer à envoyer les mises à jour de votre emplacement d'application à l'aide de LocationRequest que vous venez de configurer. Pour que cela fonctionne, cependant, vous devez fournir un objet de rappel qui peut recevoir les mises à jour d'emplacement. Ajoutez l'interface LocationListener à votre activité ou fragment, puis ajoutez la méthode onLocationChanged () comme suit:  TaskEditFragment extends Fragment implémente ConnectionCallbacks, OnConnectionFailedListener,

com. Google. Android. gms. emplacement. LocationListener

{ @Override public void onLocationChanged (emplacement final) { Toast. makeText (getActivity (), emplacement toString (), Toast, LENGTH_LONG). montrer(); }} Au fait, si tout ce qui vous intéresse est l'emplacement actuel de l'utilisateur, et que vous ne tenez pas à le garder à jour, consultez FusedLocationApi.getLastLocation (), qui supprime le besoin de l'interface LocationListener. Maintenant, si vous exécutez votre activité, vous devriez voir un message Toast qui affiche l'emplacement actuel de l'utilisateur.

La possibilité de voir leurs coordonnées GPS n'est pas vraiment utile aux utilisateurs, alors utilisons leur emplacement pour trouver leur adresse actuelle et les afficher.

Comment afficher l'adresse de l'utilisateur

Android a une API intégrée appelée Geocoder pour rechercher l'adresse d'un utilisateur à partir de ses coordonnées GPS (et vice versa).

C'est assez simple à utiliser. Le seul hic est que parce qu'il fait une requête réseau à Google sur le thread actuel, c'est à vous de vous assurer que vous l'exécutez seulement sur le thread d'arrière-plan (de sorte que vous ne bloquez pas le thread principal de l'interface utilisateur lente réseaux).

Ajoutez ce qui suit à votre activité ou fragment:

Geocoder geocoder; @Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); … geocoder = new Geocoder (getActivity ());} @Oublide public void onLocationChanged (emplacement final) {// Demande à google l'adresse de l'emplacement. // Cela peut prendre un certain temps, faites le dans une asyncTask. new AsyncTask () {@Override protected Adresse doInBackground (Void [] params) {try {Liste des adresses = geocoder. getFromLocation (emplacement: getLatitude (), emplacement: getLongitude (), 1); if (adresses! = null && adresses. size ()> 0)

adresses de retour. get (0);

} catch (IOException e) { // ignoré } return null; } // Exécution sur le thread UI @Override protected void onPostExecute (Adresse adresse) { if (adresse! = Null) { Chaîne s = adresse. getThoroughfare (); if (s! = Null) Toast. makeText (getActivity (), s, Toast, LENGTH_LONG). montrer(); } } }. exécuter(); } Ce code ajoute un champ Geocoder à votre activité ou fragment, l'initialise dans onCreate (), puis l'utilise dans onLocationChanged () pour trouver l'adresse de l'emplacement actuel. Il affiche ensuite un message Toast avec la "voie" pour l'adresse, par exemple "600 West Chicago Avenue". "L'objet Adresse renvoyé par le géocodeur est riche en informations; Découvrez les javadocs pour plus de détails sur ce que vous pouvez afficher.

Et avec cela, vous avez à peu près tout ce que vous devez savoir sur l'abonnement à l'emplacement actuel de l'utilisateur à partir d'une activité ou d'un fragment Android.

Développement d'applications Android: Comment débuter avec Location - Dummies

Le choix des éditeurs

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Grande question est toujours sur la sécurité. Comment pouvez-vous repérer les failles de sécurité hébergées sur le Web pour protéger votre site et garantir qu'il ne sera pas piraté? La réponse courte est la suivante: Vous ne pouvez pas. Tout est piratable avec suffisamment de temps, des cerveaux sournois et des ressources. Cependant, il y a des choses que vous pouvez faire pour vous protéger un peu. ...

Comment utiliser MySQL Workbench pour votre site Web - dummies

Comment utiliser MySQL Workbench pour votre site Web - dummies

Bien que phpMyAdmin et d'autres outils d'hébergement Web Pour gérer les bases de données, il est possible que vous ayez besoin de quelque chose de plus puissant. MySQL Workbench est une bonne source dans cette instance. MySQL Workbench est un outil de conception et d'administration de base de données gratuit créé par Oracle qui réunit deux produits: MySQL Query Browser et MySQL ...

Le choix des éditeurs

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Sur un cercle - c'est-à-dire texte suivant l'extérieur d'un cercle ou ovale - est un élément de conception commun dans les mises en page. C'est vraiment facile à faire dans QuarkXPress, mais ce n'est pas du tout évident comment. Procédez comme suit: Obtenez l'outil Ovale de la palette Outils et dessinez ...

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

Deux types d'échanges de bitcoins sont utilisés : peer-to-peer et régulier. D'une part, il y a les échanges de bitcoins réguliers, qui utilisent un carnet de commandes pour faire correspondre les ordres d'achat et de vente entre les personnes. Cependant, ni l'acheteur ni le vendeur n'ont la moindre idée de l'identité de l'autre partie, ce qui permet à tous les utilisateurs ...

L'interface d'application QuarkXPress - les nuls

L'interface d'application QuarkXPress - les nuls

Les palettes visibles à gauche, à droite et en bas de QuarkXPress sont flottantes - vous pouvez les faire glisser n'importe où qui vous convient. Contrairement aux palettes, les menus de la barre de menu sont collés: vous devez toujours passer la souris à la barre de menu pour y accéder. Cependant, ...

Le choix des éditeurs

Sept erreurs d'optimisation de moteur de recherche - nuls

Sept erreurs d'optimisation de moteur de recherche - nuls

Lorsque vous essayez d'obtenir votre site Web, c'est facile de faire des erreurs d'optimisation de moteur de recherche. Voici quelques-unes des erreurs de référencement les plus courantes. Vous ne connaissez pas vos mots-clés C'est également un problème majeur: la grande majorité des sites sont créés sans que les propriétaires ou les développeurs du site ne sachent vraiment ce que sont les mots-clés ...

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Vous avez probablement vu "soumission "Services annoncés pour le référencement, peut-être sous la forme de spam dans votre boîte de réception, offrant de soumettre votre site Web à des centaines de moteurs de recherche, encore et encore. Dans la plupart des cas, ces services de soumission sont une perte totale de temps et d'argent. Voici comment obtenir votre site Web dans les moteurs de recherche. You ...

Six mythes À propos de Search Engine Optimization - mannequins

Six mythes À propos de Search Engine Optimization - mannequins

Il existe une grande confusion dans le monde des moteurs de recherche. beaucoup de mythes. Voici quelques-uns des mythes communément crus qui peuvent nuire à vos positions de moteur de recherche. Tout est une question de métabalises et de soumissions. C'est le mythe le plus répandu et le plus préjudiciable de tous, tenu par de nombreux concepteurs et développeurs Web. ...