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/12 23:09] Andrei Roșu-Cojocaru |
laboratoare:laborator10 [2017/02/20 20:55] (current) |
||
|---|---|---|---|
| Line 19: | Line 19: | ||
| <note important>Trebuie să fiți autentificați folosind numele de utilizator și parola contului Google, altfel va trebui să vă creați un astfel de cont.</note> | <note important>Trebuie să fiți autentificați folosind numele de utilizator și parola contului Google, altfel va trebui să vă creați un astfel de cont.</note> | ||
| - | <note important>În situația în care nu a fost creat un proiect Google API în prealabil, trebuie realizat acest lucru, prin selectarea opțiunii //Create Project...//.</note> | + | <note important> |
| + | În situația în care nu a fost creat un proiect Google API în prealabil, trebuie realizat acest lucru, prin selectarea opțiunii //Create Project...// din meniul //Select a Project//. | ||
| - | * În secțiunea //API Manager// → //Overview//, în categoria //Google Maps APIs//, se accesează opțiunea //Google Maps Android API//, activându-se acest serviciu.\\ \\ {{ :laboratoare:laborator10:configurare01.png?nolink&600 }}\\ {{ :laboratoare:laborator10:configurare02.png?nolink }}\\ Ulterior, vor putea fi vizualizate statistici cu privire la gradul de utilizare al acestui serviciu (numărul de solicitări pe o perioadă de 28 de zile, defalcate pe țări / teritorii, metode, utilizatori, indicându-se și numărul de erori înregistrate precum și referințele prin intermediul altor legături Internet).\\ \\ {{ :laboratoare:laborator10:configurare03.png?nolink }}\\ {{ :laboratoare:laborator10:configurare04.png?nolink&600 }} | + | {{ :laboratoare:laborator10:createproject01.png?nolink }} |
| - | * În secțiunea //APIs & auth// → //Credentials//, se generează o cheie publică care va fi utilizată la procesul de autentificare, în vederea accesării funcționalității puse la dispoziție de serviciul de localizare. | + | Pentru fiecare proiect trebuie să se precizeze următorii parametri: |
| - | * Folosind utilitarul Java ''keytool'', se generează semnătura digitală a mașinii de pe care se va dezvolta aplicația Android. Pentru a putea utiliza acest utilitar, calea căte Java trebuie să se găsească în variabila de mediu ''$PATH'', respectiv ''%PATH''. | + | * denumirea (se generează în mod automat un identificator pentru proiect); |
| - | * Linux <code> | + | * locația în care este găzduit motorul de aplicații; |
| + | * acordul pentru transmiterea de mesaje electronice cu privire la actualizări despre funcționalități, sugestii de performanță, sondaje în vederea precizării de opinii despre serviciile oferite, oferte speciale; | ||
| + | * acordul pentru folosirea serviciilor și a API-urilor asociate în acord cu termenii și condițiile specifice. | ||
| + | |||
| + | {{ :laboratoare:laborator10:createproject02.png?nolink }} | ||
| + | |||
| + | În cazul în care există un singur proiect, acesta este selectat în mod implicit. | ||
| + | |||
| + | {{ :laboratoare:laborator10:createproject03.png?nolink }} | ||
| + | </note> | ||
| + | |||
| + | * În secțiunea //API Manager// → //Overview//, în categoria //Google Maps APIs//, se accesează opțiunea //Google Maps Android API//, activându-se acest serviciu. | ||
| + | |||
| + | {{ :laboratoare:laborator10:configurare01.png?nolink&600 }} | ||
| + | |||
| + | {{ :laboratoare:laborator10:configurare02.png?nolink }} | ||
| + | |||
| + | Acest API nu va putea fi însă utilizat în situația în care nu sunt create credențialele (o cheie pentru API), necesare pentru a putea accesa orice serviciu Google. | ||
| + | |||
| + | {{ :laboratoare:laborator10:configurare09.png?nolink }} | ||
| + | |||
| + | * Credențialele pot fi obținute: | ||
| + | * prin accesarea butonului //Go to Credentials//, care implică următoarele etape:\\ **1.** indicarea tipului de API folosit (în cazul de față //Google Maps Android API//) și a locației din care va fi accesat API-ul (în cazul de față //Android//), pentru a se identifica tipul de cheie care va fi generată\\ {{ :laboratoare:laborator10:configurare04.png?nolink }}\\ **2.** specificarea unei denumiri asociate cheii pentru API;\\ {{ :laboratoare:laborator10:configurare05.png?nolink }}\\ se va indica și comanda care va trebui rulată pentru generarea cheii respective; folosind utilitarul Java ''keytool'', se generează semnătura digitală a mașinii de pe care se va dezvolta aplicația Android (pentru a putea utiliza acest utilitar, calea căte Java trebuie să se găsească în variabila de mediu ''$PATH'', respectiv ''%PATH'').\\ Linux <code> | ||
| student@eim2016:~$ export PATH=$PATH:/usr/local/java/jdk1.8.0_92/bin | student@eim2016:~$ export PATH=$PATH:/usr/local/java/jdk1.8.0_92/bin | ||
| student@eim2016:~$ keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android | student@eim2016:~$ keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android | ||
| - | </code> | + | </code>\\ Windows <code> |
| - | * Windows <code> | + | |
| C:\Users\Student> set PATH=%PATH%;C:\Program Files\Java\jdk_1.8.0_92\bin | C:\Users\Student> set PATH=%PATH%;C:\Program Files\Java\jdk_1.8.0_92\bin | ||
| C:\Users\Student> keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android | C:\Users\Student> keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android | ||
| - | </code> | + | </code>\\ Vor fi furnizate mai multe tipuri de amprente digitale, pentru cheia publică de tip Android fiind necesară cea de tip SHA-1 <code> |
| - | * Vor fi furnizate mai multe tipuri de amprente digitale, pentru cheia publică de tip Android fiind necesară cea de tip SHA-1 <code> | + | |
| Alias name: androiddebugkey | Alias name: androiddebugkey | ||
| Creation date: Mar 5, 2015 | Creation date: Mar 5, 2015 | ||
| Line 60: | Line 81: | ||
| ] | ] | ||
| ] | ] | ||
| - | </code> | + | </code>\\ se accesează butonul //Add package name and fingerprint// pentru a se specifica denumirea pachetului corespunzător aplicației Android care va accesa API-ul respectiv și certificatul SHA-1\\ {{ :laboratoare:laborator10:configurare06.png?nolink }}\\ **3.** se vizualizează cheia pentru API generată care poate fi utilizată pentru accesarea serviciilor Google\\ {{ :laboratoare:laborator10:configurare07.png?nolink }}\\ În secțiunea //Credentials// pot fi vizualizate cheile pentru API generate anterior\\ {{ :laboratoare:laborator10:configurare08.png?nolink }} |
| - | * Se selectează butonul //Create New Key// din secțiunea //Public API access//.\\ \\ {{ :laboratoare:laborator10:configurare05.png?nolink }} | + | * în secțiunea //Credentials//, prin accesarea opțiunii //Create credentials// din care este selectat tipul de cheie necesar (în cazul de față //API key//); dacă nu se cunoaște tipul de cheie necesar, se poate selecta valoarea //Help me choose//\\ {{ :laboratoare:laborator10:configurare10.png?nolink }}\\ se indică tipul de cheie necesar, în funcție de locația pe care se găsește aplicația din care va fi accesat API-ul (în cazul de față //Android key//)\\ {{ :laboratoare:laborator10:configurare11.png?nolink }} |
| - | * Se specifică proprietățile cheii publice ce se dorește a fi generată: | + | |
| - | * tipul cheii publice - //Android Key//\\ \\ {{ :laboratoare:laborator10:configurare06.png?nolink }} | + | |
| - | * parametrii de conectare - semnătura digitală și pachetul corespunzător aplicației Android (separate prin caracterul '';''), astfel încât să fie acceptate solicitări numai pe baza acestor valori, în caz contrar permițându-se accesul indiferent de certificatul deținut sau de aplicația Android de pe care provine\\ \\ {{ :laboratoare:laborator10:configurare07.png?nolink&600 }} | + | |
| - | * Se identifică valoarea cheii publice care va putea fi utilizată.\\ \\ {{ :laboratoare:laborator10:configurare08.png?nolink&800 }} | + | |
| **2.** Pe dispozitivul mobil (fizic sau virtual) pe care se va rula aplicația care accesează serviciul de localizare, trebuie să se găsească cea mai recentă versiune de //Google Play Services//, asociindu-se totodată contul de utilizator Google pentru care s-a generat cheia publică. | **2.** Pe dispozitivul mobil (fizic sau virtual) pe care se va rula aplicația care accesează serviciul de localizare, trebuie să se găsească cea mai recentă versiune de //Google Play Services//, asociindu-se totodată contul de utilizator Google pentru care s-a generat cheia publică. | ||
| Line 72: | Line 89: | ||
| * Linux <code> | * Linux <code> | ||
| - | student@pdsd2015:~$ cd /opt/android-sdk-linux/tools | + | student@eim2016:~$ cd /opt/android-sdk-linux/tools |
| - | student@pdsd2015:/opt/android-sdk-linux/tools$ sudo ./android | + | student@eim2016:/opt/android-sdk-linux/tools$ sudo ./android |
| </code> | </code> | ||
| * Windows - se deschide un terminal cu drepturi de administrator <code> | * Windows - se deschide un terminal cu drepturi de administrator <code> | ||
| Line 80: | 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 88: | 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 128: | Line 153: | ||
| <metadata | <metadata | ||
| android:name="com.google.android.maps.v2.API_KEY" | android:name="com.google.android.maps.v2.API_KEY" | ||
| - | android:value="AIzaSyA650lJNGrJFLQ1Ns5L0FHY90XnHhO-P5s" /> | + | android:value="AIzaSyACwBefUuAjtvG3Xi8kOD97Nrrzb2b1FrM" /> |
| </code> | </code> | ||
| * versiunea folosită pentru biblioteca Google Play Services (preluată din cadrul proiectului referit) <code xml> | * versiunea folosită pentru biblioteca Google Play Services (preluată din cadrul proiectului referit) <code xml> | ||
| Line 137: | Line 162: | ||
| * pentru a se asigura faptul că funcționalitatea nu va putea fi accesată decât prin intermediul aplicației Android, se va defini o permisiune, definindu-se o protecție la nivel de semnătură:<code xml> | * pentru a se asigura faptul că funcționalitatea nu va putea fi accesată decât prin intermediul aplicației Android, se va defini o permisiune, definindu-se o protecție la nivel de semnătură:<code xml> | ||
| <permission | <permission | ||
| - | android:name="ro.pub.cs.systems.pdsd.lab10.googlemaps.permission.MAPS_RECEIVE" | + | android:name="ro.pub.cs.systems.eim.lab10.googlemaps.permission.MAPS_RECEIVE" |
| android:protectionLevel="signature" /> | android:protectionLevel="signature" /> | ||
| <uses-permission | <uses-permission | ||
| - | android:name="ro.pub.cs.systems.pdsd.lab10.googlemaps.permission.MAPS_RECEIVE" /> | + | android:name="ro.pub.cs.systems.eim.lab10.googlemaps.permission.MAPS_RECEIVE" /> |
| </code> | </code> | ||
| Line 174: | Line 199: | ||
| ==== Dispozitiv Fizic ==== | ==== Dispozitiv Fizic ==== | ||
| - | Pentru accesarea funcționalităților legate de locație pe dispozitivul fizic este necesar să se activeze opțiunea //Location// (care trebuie să aibă valoarea //On//) din secțiunea de configurări (//Settings// → //Personal//). | + | Pentru accesarea funcționalităților legate de locație pe dispozitivul fizic este necesar să se activeze opțiunea //Location// din secțiunea de configurări (//Settings// → //Personal//). |
| {{ :laboratoare:laborator10:physical_device_01.png?nolink&400 }} | {{ :laboratoare:laborator10:physical_device_01.png?nolink&400 }} | ||
| + | |||
| + | Valoarea configurației //Location// trebuie să aibă valoarea //On//, pentru ca serviciile de localizare să poată fi utilizate. De asemenea, sunt indicate aplicațiile Android care au folosit serviciile de localizare. | ||
| + | |||
| + | {{ :laboratoare:laborator10:physical_device_02.png?nolink&400 }} | ||
| Se poate controla acuratețea informațiilor furnizate, raportat la consumul de energie, prin intermediul opțiunilor disponibile în secțiunea //Location Mode// din secțiunea de configurări (//Settings// → //Personal// → //Location// → //Mode//). | Se poate controla acuratețea informațiilor furnizate, raportat la consumul de energie, prin intermediul opțiunilor disponibile în secțiunea //Location Mode// din secțiunea de configurări (//Settings// → //Personal// → //Location// → //Mode//). | ||
| Line 183: | Line 212: | ||
| * //Device only// - locația este determinată folosind doar informațiile furnizate de sistemul global de poziționare GPS. | * //Device only// - locația este determinată folosind doar informațiile furnizate de sistemul global de poziționare GPS. | ||
| - | {{ :laboratoare:laborator10:physical_device_02.png?nolink&400 }} | + | {{ :laboratoare:laborator10:physical_device_03.png?nolink&400 }} |
| <note tip>Se recomandă ca determinarea locației să se realizeze folosind toate resursele disponibile la un moment dat de timp pentru o precizie cât mai mare (cu un consum de energie corespunzător).</note> | <note tip>Se recomandă ca determinarea locației să se realizeze folosind toate resursele disponibile la un moment dat de timp pentru o precizie cât mai mare (cu un consum de energie corespunzător).</note> | ||
| Line 205: | 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 226: | 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 1010: | 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 1022: | Line 1041: | ||
| **2.** În contul Github personal, să se creeze un depozit denumit 'Laborator10'. Inițial, acesta trebuie să fie gol (nu trebuie să bifați nici adăugarea unui fișier ''README.md'', nici a fișierului ''.gitignore'' sau a a fișierului ''LICENSE''). | **2.** În contul Github personal, să se creeze un depozit denumit 'Laborator10'. Inițial, acesta trebuie să fie gol (nu trebuie să bifați nici adăugarea unui fișier ''README.md'', nici a fișierului ''.gitignore'' sau a a fișierului ''LICENSE''). | ||
| - | **3.** Să se cloneze în directorul de pe discul local conținutul depozitului la distanță de la [[https://www.github.com/pdsd2015/Laborator10|]]. | + | **3.** Să se cloneze în directorul de pe discul local conținutul depozitului la distanță de la [[https://www.github.com/eim2016/Laborator10|]]. |
| În urma acestei operații, directorul Laborator10 va trebui să se conțină directoarele ''labtasks'' și ''solutions''. | În urma acestei operații, directorul Laborator10 va trebui să se conțină directoarele ''labtasks'' și ''solutions''. | ||
| <code> | <code> | ||
| - | student@pdsd2015:~$ git clone https://www.github.com/pdsd2015/Laborator10 | + | student@eim2016:~$ git clone https://www.github.com/eim2016/Laborator10 |
| </code> | </code> | ||
| **4.** Să se încarce conținutul descărcat în cadrul depozitului 'Laborator10' de pe contul Github personal. <code> | **4.** Să se încarce conținutul descărcat în cadrul depozitului 'Laborator10' de pe contul Github personal. <code> | ||
| - | student@pdsd2015:~$ cd Laborator10 | + | student@eim2016:~$ cd Laborator10 |
| - | student@pdsd2015:~/Laborator10$ git remote add Laborator10_perfectstudent https://github.com/perfectstudent/Laborator10 | + | student@eim2016:~/Laborator10$ git remote add Laborator10_perfectstudent https://github.com/perfectstudent/Laborator10 |
| - | student@pdsd2015:~/Laborator10$ git push Laborator10_perfectstudent master | + | student@eim2016:~/Laborator10$ git push Laborator10_perfectstudent master |
| </code> | </code> | ||
| Line 1040: | Line 1059: | ||
| * în cazul în care se utilizează un dispozitiv fizic, acesta trebuie să ruleze un sistem de operare Android cu o versiune ulterioară 2.2, având asociat un cont Google. | * în cazul în care se utilizează un dispozitiv fizic, acesta trebuie să ruleze un sistem de operare Android cu o versiune ulterioară 2.2, având asociat un cont Google. | ||
| - | <note>În situația în care nu se reușește configurarea unui dispozitiv virtual, se poate folosi [[http://pdsd2015.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 1072: | 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 1112: | 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 1132: | 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 1144: | 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 1170: | Line 1189: | ||
| **10.** Să se încarce modificările realizate în cadrul depozitului 'Laborator10' de pe contul Github personal, folosind un mesaj sugestiv. <code> | **10.** Să se încarce modificările realizate în cadrul depozitului 'Laborator10' de pe contul Github personal, folosind un mesaj sugestiv. <code> | ||
| - | student@pdsd2015:~/Laborator10$ git add * | + | student@eim2016:~/Laborator10$ git add * |
| - | student@pdsd2015:~/Laborator10$ git commit -m "implemented taks for laboratory 10" | + | student@eim2016:~/Laborator10$ git commit -m "implemented taks for laboratory 10" |
| - | student@pdsd2015:~/Laborator10$ git push Laborator10_perfectstudent master | + | student@eim2016:~/Laborator10$ git push Laborator10_perfectstudent master |
| </code> | </code> | ||
| Line 1187: | 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]] | ||
