Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
laboratoare:laborator10 [2016/05/13 01:57]
Andrei Roșu-Cojocaru [Genymotion]
laboratoare:laborator10 [2016/05/13 09:22] (current)
Andrei Roșu-Cojocaru
Line 97: Line 97:
 </​code>​ </​code>​
  
-{{ :​laboratoare:​laborator10:​configurare09.png?​nolink&​600 }}+{{ :​laboratoare:​laborator10:​configurare12.png?​nolink&​600 }}
  
 Astfel, se instalează următoarele pachete: Astfel, se instalează următoarele pachete:
Line 105: Line 105:
 Biblioteca pentru accesarea funcționalității oferite de serviciul de localizare se găsește la ''<​android-sdk>/​extras/​google/​google_play_services/​libproject/​google-play-services_lib''​. Biblioteca pentru accesarea funcționalității oferite de serviciul de localizare se găsește la ''<​android-sdk>/​extras/​google/​google_play_services/​libproject/​google-play-services_lib''​.
  
-În mediul integrat de dezvoltare Eclipse ​Luna SR1a (4.4.1), se realizează o referință către biblioteca //Google Play Services//, astfel descărcată. +În mediul integrat de dezvoltare Eclipse, se realizează o referință către biblioteca //Google Play Services//, astfel descărcată. 
-  * se accesează //File// → //Import// → //Android// → //Existing Android Code Into Workspace//​\\ \\ {{ :​laboratoare:​laborator10:​configurare10.png?​nolink&​500 }} +  * se accesează //File// → //Import// → //Android// → //Existing Android Code Into Workspace//​\\ \\ {{ :​laboratoare:​laborator13:​configurare10.png?​nolink&​500 }} 
-  * se indică locația unde se găsește instalată biblioteca //Google Play Services//, creându-se o copie a acestuia în spațiul de lucru (se bifează opțiunea //Copy projects into workspace//​)\\ \\ {{ :​laboratoare:​laborator10:​configurare11.png?​nolink&​800 }}+  * se indică locația unde se găsește instalată biblioteca //Google Play Services//, creându-se o copie a acestuia în spațiul de lucru (se bifează opțiunea //Copy projects into workspace//​)\\ \\ {{ :​laboratoare:​laborator10:​configurare14.png?​nolink&​800 }}
  
-**4.** În mediul integrat de dezvoltare ​Eclipse Luna SR1a (4.4.1), se creează un proiect corespunzător unei aplicații Android, având următoarele proprietăți:​+**4.** În mediul integrat de dezvoltare ​preferat ​(Android Studio sau Eclipse), se creează un proiect corespunzător unei aplicații Android, având următoarele proprietăți:​
  
   * denumirea pachetului care identifică aplicația Android în mod unic trebuie să fie aceeași cu cea precizată în momentul în care a fost generată cheia publică;   * denumirea pachetului care identifică aplicația Android în mod unic trebuie să fie aceeași cu cea precizată în momentul în care a fost generată cheia publică;
  
-  * trebuie să existe o referință către biblioteca //Google Play Services// (click dreapta pe denumirea proiectului în //Package Explorer// → //​Properties//​),​ se accesează opțiunea //Android// și se specifică referința către aceasta respectivă în secțiunea //Library// (accesând butonul //Add//)\\ \\ {{ :​laboratoare:​laborator10:​configurare12.png?​nolink&​800 }}+  * pentru **Android Studio**, trebuie ca în fișierul ''​build.gradle''​ să se specifice dependința către biblioteca Google Play Services (''​com.google.android.gms:​play-services''​),​ în secțiunea ''​dependencies'':​ <file build.gradle>​ 
 +... 
 +dependencies { 
 +  ... 
 +  compile '​com.google.android.gms:​play-services:​8.4.0'​ 
 +
 +</​file>​ 
 + 
 +  * pentru **Eclipse**, ​trebuie să existe o referință către biblioteca //Google Play Services// (click dreapta pe denumirea proiectului în //Package Explorer// → //​Properties//​),​ se accesează opțiunea //Android// și se specifică referința către aceasta respectivă în secțiunea //Library// (accesând butonul //Add//)\\ \\ {{ :​laboratoare:​laborator15:​configurare12.png?​nolink&​800 }}
  
   * în fișierul ''​AndroidManifest.xml''​   * în fișierul ''​AndroidManifest.xml''​
Line 226: Line 234:
 De asemenea, este implementată și funcționalitatea prin intermediul căreia poate fi vizualizată poziția precizată în cadrul unei hărți Google. De asemenea, este implementată și funcționalitatea prin intermediul căreia poate fi vizualizată poziția precizată în cadrul unei hărți Google.
  
-{{ :​laboratoare:​laborator10:​genymotion_gps_03.png?​nolink&​400 }}+{{ :​laboratoare:​laborator10:​genymotion_gps_03.png?​nolink&​800 }}
 === AVD === === AVD ===
  
Line 236: Line 244:
 {{ :​laboratoare:​laborator10:​avd_configuration.png?​nolink&​600 }} {{ :​laboratoare:​laborator10:​avd_configuration.png?​nolink&​600 }}
  
-Controlul poziției curente poate fi realizat prin intermediul perspectivei //DDMS// din Eclipse ​Luna SR1a (4.4.1) ​(//Window// → //Open Perspective//​ → //DDMS//), unde, în secțiunea //Emulator Control// → //Location Control// se stabilesc valorile pentru latitudine și longitudine (în panoul //Manual//, în format decimal sau sexagesimal),​ după care se apasă butonul //Send//. Informații cu privire la locațiile disponibile pot fi precizate și sub forma unor fișiere gpx sau kml, care pot fi încărcate.+Controlul poziției curente poate fi realizat prin intermediul perspectivei ​//Android Debug Monitor// din Android Studio sau //DDMS// din Eclipse (//Window// → //Open Perspective//​ → //DDMS//), unde, în secțiunea //Emulator Control// → //Location Control// se stabilesc valorile pentru latitudine și longitudine (în panoul //Manual//, în format decimal sau sexagesimal),​ după care se apasă butonul //Send//. Informații cu privire la locațiile disponibile pot fi precizate și sub forma unor fișiere gpx sau kml, care pot fi încărcate.
  
 {{ :​laboratoare:​laborator10:​avd_emulator_control.png?​nolink&​600 }} {{ :​laboratoare:​laborator10:​avd_emulator_control.png?​nolink&​600 }}
 +
 ===== Gestiunea unei Hărți Google ===== ===== Gestiunea unei Hărți Google =====
  
Line 1020: Line 1029:
 ===== Activitate de Laborator ===== ===== Activitate de Laborator =====
  
-**1.** Să se acceseze [[https://code.google.com/​apis/​console/​|Google Developer'​s Console]], după ce a fost realizată autentificarea cu datele contului Google (nume de utilizator, parolă):+**1.** Să se acceseze [[https://console.developers.google.com|Google Developer'​s Console]], după ce a fost realizată autentificarea cu datele contului Google (nume de utilizator, parolă):
   * se obține un număr de proiect (dacă această operație nu a fost realizată anterior);   * se obține un număr de proiect (dacă această operație nu a fost realizată anterior);
   * se activează serviciul //Google Maps Android API//;   * se activează serviciul //Google Maps Android API//;
Line 1052: Line 1061:
 <​note>​În situația în care nu se reușește configurarea unui dispozitiv virtual, se poate folosi [[http://​eim2016.andreirosucojocaru.ro/​resources/​Genymobile.tar.gz|o imagine Nexus S (API 16)]] care trebuie plasată în directorul ''​$HOME''​.</​note>​ <​note>​În situația în care nu se reușește configurarea unui dispozitiv virtual, se poate folosi [[http://​eim2016.andreirosucojocaru.ro/​resources/​Genymobile.tar.gz|o imagine Nexus S (API 16)]] care trebuie plasată în directorul ''​$HOME''​.</​note>​
  
-**6.** Să se importe în mediul integrat de dezvoltare ​Eclipse Luna SR1a (4.4.1) proiectele ''​google-play-service_lib''​ și ''​01-GoogleMapsPlaces''​ din directorul ''​labtasks'' ​(în această ordine).+**6.** Să se importe în mediul integrat de dezvoltare ​preferat ​(Android Studio sau Eclipse) proiectele ''​GoogleMapsPlaces''​ și ''​google-play-service_lib'' ​(doar pentru Eclipse) ​din directorul ''​labtasks''​.
  
 Se dorește să se implementeze o aplicație care să navigheze către o locație specificată prin intermediul coordonatelor GPS (latitudine / longitudine) și pentru care se dorește plasarea unui reper pe hartă, însoțit de o denumire. Se dorește să se implementeze o aplicație care să navigheze către o locație specificată prin intermediul coordonatelor GPS (latitudine / longitudine) și pentru care se dorește plasarea unui reper pe hartă, însoțit de o denumire.
Line 1082: Line 1091:
   - se șterg toate reperele din lista de locații (''​places''​),​ notificându-se și adaptorul corespunzător obiectului de tip ''​Spinner''​ (''​placesAdapter''​) de această modificare, astfel încât acesta să fie actualizat corespunzător.   - se șterg toate reperele din lista de locații (''​places''​),​ notificându-se și adaptorul corespunzător obiectului de tip ''​Spinner''​ (''​placesAdapter''​) de această modificare, astfel încât acesta să fie actualizat corespunzător.
  
-**7.** Să se importe în mediul integrat de dezvoltare ​Eclipse Luna SR1a (4.4.1) proiectele ''​google-play-service_lib''​ și ''​02-GoogleMapsLocationUpdate''​ din directorul ''​labtasks'' ​(în această ordine).+**7.** Să se importe în mediul integrat de dezvoltare ​preferat ​(Android Studio sau Eclipse) proiectele ''​GoogleMapsLocationUpdate''​ și ''​google-play-service_lib'' ​(doar pentru Eclipse) ​din directorul ''​labtasks''​.
  
 Se dorește să se implementeze o aplicație pentru care să se implementeze posibilitatea de actualizare periodică a poziției curente pe hartă, în funcție de starea unui buton, prin care se controlează pornirea / oprirea acestui serviciu. Se dorește să se implementeze o aplicație pentru care să se implementeze posibilitatea de actualizare periodică a poziției curente pe hartă, în funcție de starea unui buton, prin care se controlează pornirea / oprirea acestui serviciu.
Line 1122: Line 1131:
   - se activează controalele grafice ''​latitudeEditText'',​ ''​longitudeEditText'',​ ''​navigateToLocationButton'',​ acestea având un conținut vid.   - se activează controalele grafice ''​latitudeEditText'',​ ''​longitudeEditText'',​ ''​navigateToLocationButton'',​ acestea având un conținut vid.
  
-**8.** Să se importe în mediul integrat de dezvoltare ​Eclipse Luna SR1a (4.4.1) proiectele ''​google-play-service_lib''​ și ''​03-GoogleMapsGeocoding''​ din directorul ''​labtasks'' ​(în această ordine).+**8.** Să se importe în mediul integrat de dezvoltare ​preferat ​(Android Studio sau Eclipse) proiectele ''​GoogleMapsGeocoding''​ și  ''​google-play-service_lib'' ​(doar pentru Eclipse) ​din directorul ''​labtasks''​.
  
 Se dorește să se implementeze o aplicație care să realizeze procesul de codificare geografică inversă: dându-se un set de coordonate GPS, se dorește să se determine adresa poștală corespunzătoare. Se dorește să se implementeze o aplicație care să realizeze procesul de codificare geografică inversă: dându-se un set de coordonate GPS, se dorește să se determine adresa poștală corespunzătoare.
Line 1142: Line 1151:
   - se transmite rezultatul către activitatea principală (se apelează metoda ''​handleResult()''​ cu codul numeric de rezultat (''​Constants.RESULT_SUCCESS'',​ ''​Constants.RESULT_FAILURE''​) și rezultatul obținut, respectiv mesajul de eroare, după caz.   - se transmite rezultatul către activitatea principală (se apelează metoda ''​handleResult()''​ cu codul numeric de rezultat (''​Constants.RESULT_SUCCESS'',​ ''​Constants.RESULT_FAILURE''​) și rezultatul obținut, respectiv mesajul de eroare, după caz.
  
-**9.** Să se importe în mediul integrat de dezvoltare ​Eclipse Luna SR1a (4.4.1) proiectele ''​google-play-service_lib''​ și ''​04-GoogleMapsGeofencing''​ din directorul ''​labtasks'' ​(în această ordine).+**9.** Să se importe în mediul integrat de dezvoltare ​preferat ​(Android Studio sau Eclipse) proiectele ''​GoogleMapsGeofencing''​ și  ''​google-play-service_lib'' ​(doar pentru Eclipse) ​din directorul ''​labtasks''​.
  
 Se dorește să se implementeze o aplicație care să monitorizeze activitatea unui dispozitiv mobil raportat la o zonă de restricție geografică. ​ Se dorește să se implementeze o aplicație care să monitorizeze activitatea unui dispozitiv mobil raportat la o zonă de restricție geografică. ​
Line 1154: Line 1163:
 Notificările vor fi generate: Notificările vor fi generate:
  
-  - când utilizatorul intră în zona de restricție geografică\\ \\ {{ :​laboratoare:​laborator10:​google_maps_geofencing_02_03.png?​nolink&​600 }} +  - când utilizatorul intră în zona de restricție geografică\\ \\ {{:​laboratoare:​laborator10:​google_maps_geofencing_02.png?​nolink&​300}} {{:​laboratoare:​laborator10:​google_maps_geofencing_03.png?​nolink&​300}} 
-  - când utilizatorul iese din zona de restricție geografică\\ \\ {{ :​laboratoare:​laborator10:​google_maps_geofencing_04_05.png?​nolink&​600 }}+  - când utilizatorul iese din zona de restricție geografică\\ \\ {{:​laboratoare:​laborator10:​google_maps_geofencing_04.png?​nolink&​300}} {{:​laboratoare:​laborator10:​google_maps_geofencing_05.png?​nolink&​300}}
  
 Detaliile cu privire la evenimentul produs vor putea fi vizualizate în cadrul unei activități dedicate. Detaliile cu privire la evenimentul produs vor putea fi vizualizate în cadrul unei activități dedicate.
Line 1197: Line 1206:
 [[http://​developer.android.com/​reference/​com/​google/​android/​gms/​location/​package-summary.html|Package com.google.android.gms.location]]\\ ​ [[http://​developer.android.com/​reference/​com/​google/​android/​gms/​location/​package-summary.html|Package com.google.android.gms.location]]\\ ​
 [[http://​www.androidhive.info/​2013/​08/​android-working-with-google-maps-v2/​|Android Working with Google Maps v2]]\\ ​ [[http://​www.androidhive.info/​2013/​08/​android-working-with-google-maps-v2/​|Android Working with Google Maps v2]]\\ ​
-[[http://​javapapers.com/​android/​android-get-address-with-street-name-city-for-location-with-geocoding/​|Android Get Address with Street Name, City for Location with Geocoding]]+[[http://​javapapers.com/​android/​android-get-address-with-street-name-city-for-location-with-geocoding/​|Android Get Address with Street Name, City for Location with Geocoding]]\\  
 +[[https://​developers.google.com/​android/​guides/​setup#​add_google_play_services_to_your_project|Setting up Google Play Services in Android Studio]]
laboratoare/laborator10.1463093858.txt.gz · Last modified: 2016/05/13 01:57 by Andrei Roșu-Cojocaru
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0