Come usare Google Play Services nella propria App
I Google Play Services sono un progetto software che offre in un unico pacchetto librerie, API e funzionalità varie con cui le applicazioni presenti su un dispositivo Android possono interagire con i servizi web di Google
Da molto tempo ormai, Google non è più solo un motore di ricerca. Acquisizioni di compagnie, sviluppo di progetti in proprio e adozioni di tecnologie aperte hanno creato attorno alla società di Mountain View un universo di servizi informatici. Molti di questi vengono quotidianamente utilizzati da milioni di utenti, non necessariamente professionisti dell'informatica: Youtube, mappe, Google Drive, Gmail.
Google ha aperto questo mondo ai programmatori di ogni tecnologia ed, in particolare, ha deciso di dotare gli esperti di Android di una piattaforma di integrazione tra servizi remoti e app: i Google Play Services.
I Google Play Services sono un progetto software che offre in un unico pacchetto librerie, API e funzionalità varie con cui le applicazioni presenti su un dispositivo Android possono interagire con i servizi web di Google in maniera ottimizzata, al passo con gli ultimi aggiornamenti rilasciati ed in una modalità di sviluppo molto produttiva dal punto di vista del programmatore. Per questo ogni dispositivo Android vede installati e costantemente aggiornati i Google Play Services al proprio interno.
Affinchè un nostro progetto possa sfruttarli per interagire con un servizio remoto di Google, deve includere un collegamento ad una particolare libreria "client" fornitrice di tutte le interfacce di comunicazione.
In questo articolo si vedrà come installare tutto il necessario nella propria applicazione ed effettuare le inizializzazioni finalizzate a rendere disponibili le funzionalità di cui abbiamo bisogno.
Integrare i Google Play Services nel proprio progetto Android
Per prima cosa, dobbiamo scaricare la libreria Google Play Services. Agiamo tramite Android SDK Manager. Troveremo i Google Play Services elencati tra gli Extras e qualora il nostro SDK non ne fosse ancora dotato provvediamo al download. Una volta scaricati, saranno disponibili all'interno del SDK, precisamente nella cartella extras/google/google_play_services.
In Android Studio, ci avvarremo della flessibilità di Gradle, inserendo una riga nel file build.gradle del modulo che stiamo usando. La modifica andrà fatta all'interno del nodo dependencies e consisterà nell'aggiunta della riga:
dependencies { ... compile 'com.google.android.gms:play-services:10.2.1' }
NB: Attenzione alla versione da specificare: deve essere eventualmente sostituita con quella dei GooglePlayServices scaricati.
NB: Nelle recenti versioni di Android, sono stati segnalati dei problemi legati a dei conflitti con la librerie di supporto. In questi casi, conviene specificare i singoli play-services che si intende utilizzare invece di importarli tutti. (vedi dopo)
NB: Molto importante, infine, è cliccare il pulsante "Sync Project with Gradle Files" in Android Studio affinchè la modifica venga presa in considerazione per il build.
NB: Ultima nota, è importante inserire nel file AndroidManifest.xml, all'interno del nodo <application>, la seguente annotazione:
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
Integrare i singoli Play Services nel proprio progetto
Nel caso Android Studio segnalasse un problema di questo tipo: "All com.android.support libraries must use the exact same version specification", è probabile o che tu non abbia importato tutte le google API all'interno di Android Studio, o che alcune librerie dei google service, non siano compatibili con la versione per cui stai sviluppando l'applicazione, in particolare se stai usando la più recente versione di Android.
La soluzione potrebbe essere quella di includere le singole dipendenze, a seconda di quale servizio di Google realmente ti serve. Qui sotto un possibile esempio nel caso volessi sfruttare le funzionalità legate alle mappe di Google, in cui abbiamo commentato la riga generica di importazione di tutte le funzionalità del play-service, a favore delle singole che ci interessa avere nel progetto.
dependencies { ... // compile 'com.google.android.gms:play-services:10.2.1' compile 'com.google.android.gms:play-services-location:10.2.1' compile 'com.google.android.gms:play-services-maps:10.2.1' compile 'com.google.android.gms:play-services-places:10.2.1' }
NB: Ricordati poi di aggiornare e sincronizzare nuovamente il progetto.
La Google Developers Console
Integrati i PlayServices nel proprio progetto, si deve configurare l'utilizzo dei servizi Google di cui si ha bisogno. Lo si fa mediante la Google Developers Console, il cruscotto unico di interazione con i servizi Google per i programmatori.
L'indirizzo è: http://code.google.com/apis/console. Una volta raggiuntolo con il browser, viene chiesto di effettuare il login. Google ha coniato il motto "One account. All of Google" quindi possedendo un solo account Google si può accedere alla piattaforma intera. Le credenziali di una casella di posta GMail andranno benissimo allo scopo.
Appena entrati è necessario creare un progetto mediante il tasto "Create Project". Un progetto Google non è altro che un insieme di configurazioni di API da attivare, chiavi di autenticazione per accedervi, permessi per utenti autorizzati ad interagire con il progetto ed, eventualmente, termini di fatturazione di servizi acquistati.
Per il progetto indicheremo un Project Name dal significato del tutto simbolico ed utile solo al programmatore per riconoscere il progetto, ad esempio "CorsoAndroid". Si può scegliere un altro identificativo che è il Project ID, proposto in automatico da Google, mentre il vero codice di riconoscimento del progetto lo assegnerà la piattaforma e non può essere deciso: il Project Number.
Dopo aver creato un progetto, è possibile entrare nella relativa pagina di configurazione selezionandone il nome dalla lista di tutti i progetti creati. Quello mostrato nella figura successiva è uno scorcio della pagina corrispondente al nostro progetto appena creato e denominato "CorsoAndroid".
Il passo successivo sarà quello di attivare le API che hai intenzione di utilizzare nel progetto Android. Cliccando su "Enable and manage APIs", accederai ad un pannello in cui potrai cercare le API di interesse. Per poterle utilizzare all'interno della tua applicazione Android, dovrai effettuare due passi obbligatori e un terzo opzionale:
1) Abilitare le API
2) Creare le credenziali di accesso, in particolare una Android API Key
3) Opzionale: generare una firma SHA-1 con keytools
La prima operazione è semplice perchè basterà cliccare sulla voce "Enable API". Per il secondo passo, dovrai accedere al menu laterale "Credential", indicare un nome generico per la chiave, e poi cliccare su genera.
Il valore che ti sarà presentato da Google lo dovrai copiare nei tuoi progetti, in particolare all'interno del file androidmanifest.xml (nodo application), referenziando ad esempio una stringa google_maps_key, valorizzata appunto con il valore della chiave fornito da Google.
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/google_maps_key" />
Arrivare qui è il primo passo per iniziare con la programmazione Android per i servizi Google. Quando si vorrà lavorare con le Google Maps, Location API o qualunque altro servizio basato su Cloud, la prima operazione da compiere sarà ripetere quello che abbiamo visto in questo tutorial: collegare Google Play Services alla nostra app, verificare la presenza di un progetto Google idoneo, configurarlo opportunamente.
2024-12-13 Tipo/Autore: Davide Copelli {ing} Pubblicato da: CorsoAndroid.it