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
colocvii:colocviu02 [2015/05/16 20:44]
Andrei Roșu-Cojocaru [Rezolvări]
colocvii:colocviu02 [2015/05/16 21:28] (current)
Andrei Roșu-Cojocaru
Line 2: Line 2:
  
 ===== Model de Subiect ===== ===== Model de Subiect =====
 +
 +<​HTML>​
 +<​center>​
 +</​HTML>​
 +
 +{{url>​http://​pdsd2015.andreirosucojocaru.ro/​_media/​colocvii/​colocviu02/​pdsd2015-tp02-varsim.pdf 90%,800px}}
 +
 +<​HTML>​
 +</​center>​
 +</​HTML>​
 +
 +{{ colocvii:​colocviu02:​pdsd2015-tp02-varsim.pdf }}
  
 ===== Observații Generale ===== ===== Observații Generale =====
Line 689: Line 701:
 </​code>​ </​code>​
  
-**8.**+**8.** ​În situația în care un server de aplicații dorește să transmită un mesaj către un dispozitiv mobil prin intermediul serviciului Google Cloud Messaging, specificând în antetul ''​Authorization''​ al cererii o cheie publică ce nu este asociată numărului de proiect pe baza căruia a fost generat identificatorul de înregistrare transmis ca valoare a parametrului ''​registration_id'',​ respectiv ''​registration_ids'',​ răspunsul va fi ''​MismatchSenderId''​. Acesta indică faptul că utilizatorul respectiv nu are dreptul de a transmite notificări către dispozitivul mobil. În aceste condiții, notificarea nu va fi transmisă, acest lucru fiind precizat prin contorizarea sa în secțiunea ''​failure''​.
  
-**9.**+**9.** ​Înregistrarea unui serviciu în cadrul rețelei locale se face prin intermediul unor obiecte ''​NsdServiceInfo''​ (Android NSD) respectiv ''​ServiceInfo''​ (JmDNS). Acestea sunt transmise ca parametrii ai metodelor ''​registerService()''​ din clasele ''​NsdManager'',​ respectiv ''​JmDNS''​.
  
-**10.**+Aceste obiecte sunt caracterizate prin parametrii de conectare la serviciu: 
 +  ​* ''​NsdServiceInfo''​ - adresaInternet (metoda ''​setHost()''​) și port (metoda ''​setPort()''​);​ 
 +  ​* ''​ServiceInfo''​ - portul, configurat prin intermediul constructorului.
  
 +Se recomandă ca portul să fie furnizat de sistemul de operare, pentru a evita situațiile în care utilizatorul poate specifica un port care este ocupat. În acest sens, se instanțiază un obiect de tip ''​ServerSocket''​ care primește parametrul ''​0'',​ indicându-se astfel faptul că se dorește utilizarea unui port aleator, care poate fi folosit la momentul respectiv. Ulterior, parametrii de conectare pot fi obținuți folosind metodele specifice ale unui astfel de obiect:
 +  * adresa Internet - ''​getInetAddress()'';​
 +  * port - ''​getLocalPort()''​.
 +
 +<code java>
 +ServerSocket serverSocket = new ServerSocket(0);​
 +if (serverSocket != null) {
 +  InetAddress inetAddress = serverSocket.getInetAddress();​
 +  int port = serverSocket.getLocalPort();​
 +}
 +</​code>​
 +
 +**10.** Harta Google este implementată în SDK-ul Android:
 +  * prin intermediul unei componente grafice de tipul [[https://​developer.android.com/​reference/​com/​google/​android/​gms/​maps/​MapView.html|MapView]];​
 +  * în cadrul unui fragment, de tipul [[http://​developer.android.com/​reference/​com/​google/​android/​gms/​maps/​MapFragment.html|MapFragment]].
 +
 +Referințele către aceste obiecte se obțin în mod obișnuit, prin intermediul metodelor ''​findViewById()'',​ respectiv ''​findFragmentById()''​.
 +
 +Pe baza controalelor grafice ''​MapView''​ sau ''​MapFragment'',​ se poate obține o instanță a unui obiect [[https://​developer.android.com/​reference/​com/​google/​android/​gms/​maps/​GoogleMap.html|GoogleMap]],​ prin intermediul metodelor ''​getMap()'',​ respectiv ''​getMapAsync()''​. Se recomandă să se folosească metoda asincronă care garantează faptul că obiectul furnizat este nenul. Metoda de callback ''​onMapReady()''​ a clasei ascultător ''​OnMapReadyCallback''​ nu va fi apelată în situația în care serviciul Google Play Services nu este disponibil pe dispozitivul mobil sau obiectul este distrus imediat după ce a fost creat.
 +
 +<code java>
 +if (googleMap == null) {
 +  if (googleMap == null) {
 +    ((MapFragment)getFragmentManager().findFragmentById(R.id.google_map)).getMapAsync(new OnMapReadyCallback() {
 +      @Override
 +      public void onMapReady(GoogleMap readyGoogleMap) {
 +        googleMap = readyGoogleMap;​
 +      }
 +    });
 +  }
 +}
 +</​code>​
colocvii/colocviu02.1431798277.txt.gz · Last modified: 2015/05/16 20:44 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