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:41]
Andrei Roșu-Cojocaru [Configurare]
laboratoare:laborator10 [2017/02/20 20:55] (current)
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_mapping_service.png?​nolink&​600 }} +{{ :​laboratoare:​laborator10:​genymotion_gps_03.png?​nolink&​800 }}
- +
-Alte configurații legate de serviciul de localizate sunt disponibile în secțiunea //​Settings//​ → //Location Services//, unde este recomandat să se selecteze toate opțiunile existente:​ +
-  * //​Google'​s location service// - permite transmisia de informații anonime către Google și utilizarea rețelelor mobile și fără fir pentru determinarea locației aproximative,​ atunci când nu sunt disponibile alte resurse; +
-  * //GPS satellites//​ - oferă accesul la sistemul de poziționare globală GPS pentru determinarea locației;​ +
-  * //Location & Google Search// - determină utilizarea de către Google a locației curente pe baza căreia să își contextualizeze serviciile. +
-  +
-{{ :​laboratoare:​laborator10:​genymotion_location_services.png?​nolink&​400 }} +
- +
-<​note>​În cazul în care nu sunt selectate toate aceste opțiuni, este posibil ca serviciul Geocoder să nu fie disponibil. Dacă o astfel de situație persistă chiar și în condițiile în care configurațiile sunt corespunzătoare,​ dispozitivul virtual trebuie repornit, întrucât eroarea este determinată de o problemă cu serviciul Google Play Services, a cărui stare nu a fost actualizată.</​note>​ +
- +
 === AVD === === AVD ===
  
Line 247: 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 1031: 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 1063: 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 1093: 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 1133: 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 1153: 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 1165: 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 1208: 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.1463092878.txt.gz · Last modified: 2017/02/20 20:44 (external edit)
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0