Differences
This shows you the differences between two versions of the page.
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]] |