© JMF (Tous droits réservés) 1 L'API Google de géolocalisation pour Android Jea

© JMF (Tous droits réservés) 1 L'API Google de géolocalisation pour Android Jean-marc Farinone Maître de conférences CNAM Paris © JMF (Tous droits réservés) 2 La (géo)localisation : le sytème GPS ❚GPS = Global Positionning System ❚24 satellites tournant autour de la terre (au moins) et diffusant leur position et l'heure de diffusion ❚Un récepteur, équipé d'une horloge, reçoit au moins 4 signaux de 4 satellites et calcule alors sa position ❚précision de 15 à 100 mètres (version standard) ❚source : http://fr.wikipedia.org/wiki/GPS © JMF (Tous droits réservés) 3 La (géo)localisation : l'Android's Network Location ❚Utilise les réseaux téléphoniques cellulaires et le Wi-Fi ❚Est plutôt conseillé : utilise moins de puissance électrique, fonctionne à l'intérieur et à l'extérieur, est plus rapide ❚source : http://developer.android.com/guide/topics/location/strategies.h tml © JMF (Tous droits réservés) 4 Utiliser les cartes de Google ❚Un des grands avantages d'Android est de pouvoir bénéficier des principales applications déjà développées par Google. L'une d'elle sont les Google maps ❚Toute une API permet d'utiliser ces cartes Google ❚Cette API v2 est désormais comprise dans l'Android SDK Manager ❚La version Google Maps Android v1 est officiellement dépréciée le 3 décembre 2012. Après le 18 mars 2013, on ne peut plus recevoir une API Key pour cette version (source https://developers.google.com/maps /documentation/android/v1/) mais les apps les contenant peuvent continuer à être exécuter © JMF (Tous droits réservés) 5 La bibliothèque Google Maps ❚On utilise donc les Google Maps Android API v2. La page d'accueil de cette technologie est à l'URL https://developers.google.com/maps/documentation/android/ ❚Cette API permet de manipuler des cartes terrestres. Ces classes se trouvent dans le package com.google.android.gms.maps ❚Pour afficher une carte, on utilise les fragments ❚Cette API gère les entrées clavier, le zoom, le toucher sur une carte affichée ❚On peut ajouter des dessins, des images sur la carte ❚Pour utiliser cette API, on doit être enregistré auprès du service Google Maps et avoir obtenu une clé Maps API v2 ❚On peut commencer à étudier cette API à partir de l'URL https://developers.google.com/maps/documentation/android /intro. La suite est à https://developers.google.com/maps/documentation/android /start#the_google_maps_api_key © JMF (Tous droits réservés) 6 Les étapes pour utiliser les cartes de Google ❚Pour utiliser les cartes Google, il faut suivre les étapes suivantes : ❚1°) Charger la bibliothèque Google Play Services SDK ❚2°) Repérer cette bibliothèque dans votre projet ❚3°) Obtenir une Maps API v2 Key ❚4°) Configurer l'AndroidManifest.xml de l'application ❚5°) Ecrire une activité demandant à afficher une carte Google ❚Toute la procédure est indiquée à https://developers.google.com/maps/documentation/a ndroid/start © JMF (Tous droits réservés) 7 Avant de commencer ❚MAIS EUH ! ❚"Google Play services is not supported on the Android emulator — to develop using the APIs, you need to provide a development device such as an Android phone or tablet." ❚source : http://developer.android.com/google/play- services/setup.html ❚Bref, au 21 mai 2013, il faut avoir une tablette ou un smartphone réel pour faire du développement. On ne peut tester le code développé sur un émulateur (= AVD) © JMF (Tous droits réservés) 8 1°) Charger la bibliothèque Google Play Services SDK (1/3) ❚Bibliographie : https://developers.google.com/maps/documentation/a ndroid/intro#sample_code ❚Pour charger ou vérifier que vous avez les "Google Play services SDK", lancer l'"Android SDK" ("and AVD" dans certaines versions de plug-in) "Manager". Pour cela : ❙soit cliquer sur l'icone ❙soit Window | Android SDK Manager © JMF (Tous droits réservés) 9 1°) Charger et configurer les services Google Play SDK (2/3) ❚Descendre dans Extras | Google Play services : ❚Les installer si ce n'est pas le cas (sélectionner et cliquer Install 1 package, puis accept, puis Install, puis ... c'est bon) © JMF (Tous droits réservés) 10 1°) Charger la bibliothèque Google Play Services SDK (3/3) ❚On doit obtenir : ❚source : http://code.google.com/intl/en/android/add- ons/google-apis/installing.html © JMF (Tous droits réservés) 11 2°) Repérer cette bibliothèque dans votre projet (1/6) ❚Construire un projet Android sous Eclipse ❚Intégrer la bibliothèque par File | Import... ❚Puis, dans le fenêtre Import, sélectionner "Existing Android Code Into Workspace" © JMF (Tous droits réservés) 12 2°) Repérer cette bibliothèque dans votre projet (2/6) ❚Parcourir le disque pour trouver le répertoire <android-sdk- folder>/extras/google/google_play_services/libproj ect/google-play-services_lib ❚Cliquer OK ❚ATTENTION, ce n'est pas terminé ! On a simplement chargé cette bibliothèque dans l'espace de travail (workspace) ❚Il faut encore référencer cette bibliothèque dans le projet © JMF (Tous droits réservés) 13 2°) Repérer cette bibliothèque dans votre projet (3/6) ❚Après l'étape précédente on a une configuration comme : ❚La bibliothèque google-play-services_lib est bien dans l'espace de travail. Mais certains projets (cf. ci dessus) ne les référencent pas ❚Il faut référencer cette biblilothèque dans le projet. Pour cela voir à http://developer.android.com/tools/projects/projec ts-eclipse.html#ReferencingLibraryProject ❚Ou explications diapos suivantes ! © JMF (Tous droits réservés) 14 2°) Repérer cette bibliothèque dans votre projet (4/6) ❚Pour référencer cette bibliothèque google-play-services_lib dans le projet : ❙a) sélectionner votre projet, cliquer droit, selectionner Properties ❙b) dans la fenêtre Properties, sélectionner Android (colonne de gauche) ❙c) dans la partie Library (partie droite), cliquer Add (en bas à droite) ❙d) dans la fenêtre de dialogue "Project Selection", sélectionner la bibliothèque (library) google-play-services_lib. Cliquer OK. ❙e) Cette bibliothèque apparait dans la partie Library du projet (en bas à droite). Cliquer Apply puis OK dans la fenêtre "Properties for leProjet " ❚Remarque : parfois cela ne fonctionne pas. Fermer Eclipse, le relancer (faire des clean, des refresh, des CTRL-SHIFT-O, la vie quoi ... ;-)) ❚source : http://stackoverflow.com/questions/5167273/in- eclipse-unable-to-reference-an-android-library-project- in-another-android-pr © JMF (Tous droits réservés) 15 2°) Repérer cette bibliothèque dans votre projet (5/6) ❚En images, cela donne : ❚a) ❚b) et c) ❚d) © JMF (Tous droits réservés) 16 2°) Repérer cette bibliothèque dans votre projet (6/6) ❚e) © JMF (Tous droits réservés) 17 3°) Obtenir une Maps API v2 Key (1/10) ❚"Note: The Google Maps Android API v2 uses a new system of managing keys. Existing keys from a Google Maps Android v1 application, commonly known as MapView, will not work with the v2 API." (*) ❚"You obtain a Maps API key from the Google APIs Console by providing your application's signing certificate and its package name. Once you have the key, you add it to your application by adding an element to your application's manifest file AndroidManifest.xml." ❚Bon, c'est clair, non ? ❚De plus comme toute application Android est signée, "Maps API keys are linked to specific certificate/package pairs, rather than to users or applications" ❚(*) source https://developers.google.com/maps/documentation/android /start#getting_the_google_maps_android_api_v2 © JMF (Tous droits réservés) 18 3°) Obtenir une Maps API v2 Key (2/10) ❚L'exposé ci dessous est fait avec le "Debug Certificate". C'est similaire pour le "Release Certificate" (= clé de publication de l'application) ❚Il y a 3 étapes : ❙a) obtenir l'empreinte (réduit , digest, hascode, ...) SHA1 du certificat (de debug) ❙b) inscrire son projet (auprès de google) ❙c) obtenir une clé "API key" de google pour votre projet ❚(*) source https://developers.google.com/maps/documentation/android /start#getting_the_google_maps_android_api_v2 © JMF (Tous droits réservés) 19 3°) Obtenir une Maps API v2 Key (3/10) a) empreinte SHA1 du certificat ❚Bref avant tout, et avant d'avoir obtenu une clé Google, il faut un certificat de l'entrepôt de clés ❚Rappel (?) : un certificat contient essentiellement une clé publique (et souvent des renseignements associés) ❚Pour créer un certificat, une clé publique (associé à une clé privée), un entrepôt de clés, on utilise l'outil keytool. Ce n'est pas de l'Android, c'est du Java ❚Pour la clé debug, l'entrepôt de clés se trouve : ❙pour Windows Vista et 7, sous C:\Users\<user>\.android\debug.keystore ❙pour Windows XP: C:\Documents and Settings\<user>\.android\debug.keystore ❙pour OS X and Linux: ~/.android/debug.keystore © JMF (Tous droits réservés) 20 3°) Obtenir une Maps API v2 Key (4/10) a) empreinte SHA1 du certificat ❚L'entrepôt de la debug key peut être trouvé dans Eclipse par Windows | Preferences, puis Android | Build © JMF (Tous droits réservés) 21 3°) Obtenir une Maps API v2 Key (5/10) a) empreinte SHA1 du certificat ❚Pour créer une empreinte SHA1 d'un certificat on lance la commande keytool -list -v -keystore "arborescenceAmenantA\debug.keystore" -alias androiddebugkey -storepass android -keypass android ❙ -list permet d'obtenir une empreinte du certificat créé ❙ -alias nomDeCle est l'alias de clé généré dans ce certificat ❙ -keystore nomEntrepotDeCles précise l'entrepôt de clés ❙ -storepass motDePasseDeLEntrepot indique le mot de passe de l'entrepôt de clés. Euh il devrait plutôt être passé pendant l'exécution de la commande plutôt qu'en clair sur la ligne de commande ! ❙ -keypass motDePasseDeLaClé indique la clé. Euh idem ! ❚Les valeurs debug.keystore (pour -keystore), androiddebugkey (pour -alias), android (pour -storepass et -keypass) sont les valeurs données pas défaut par le plug-in Android © JMF (Tous droits réservés) 22 3°) Obtenir une Maps API v2 Key (6/10) a) empreinte SHA1 du certificat ❚En résumé, en lançant : keytool -list -v -keystore arborescenceAmenantA\debug.keystore -alias androiddebugkey -storepass android -keypass android on obtient un résultat comme : ❚La clé SHA1 est celle commençant par 28:FB... © JMF (Tous droits réservés) 23 3°) Obtenir une Maps API v2 Key (7/10) b) inscrire son projet ❚Il faut aller à Google APIs Console d'URL : https://code.google.com/apis/console/b/0/#project: 879367110412 ❚On arrive à la page ❚Cliquer Services et descendre pour sélectionner Google Maps Android API v2 (et pas Google Maps API v2) ! c'est à dire l'item ❚Cliquer uploads/Geographie/ geolocalisation-pour-android 1 .pdf

  • 11
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager