Corso di programmazione di sistemi mobile 1. Android. Google Cloud Messaging

Documenti analoghi
RT VIRTUAL CARD. Manuale Utente

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Il progetto ApoBus e la creazione dell ambiente con Android Studio

Portal e Portlet ClassLoader. Mancini Marco

ARCHIVIAZIONE AUTOMATICA (Gestione Allegati)

MyPostman. Progetto di messaggistica istantanea Invio messaggi ai tuoi contatti attraverso Google Cloud Messaging

Manuale LiveBox WEB ADMIN.

4 PASSI PER INVIARE LA TUA NEWSLETTER CON MAILUP

Introduzione. EMS è un sistema di raccolta e gestione ordini clienti. Si compone in due parti:

CAMBIO DI GESTIONE DEGLI ESEMPLARI RICHIESTI DALLE BIBLIOTECHE

Messaggi volatili. Matteo Zignani. 10 gennaio 2015

Per accedere all'applicativo è necessario inserire e password impostati in fase di registrazione.

Vlan Relazione di Sistemi e Reti Cenni teorici

ALTRO. v (Aprile 2015)

Manuale LiveBox WEB ADMIN.

Appunti di Informatica 1

Ata_NiAg02. Modulo Gestione Agenti

Lab. Programmazione Sistemi Mobili e Tablets

Tecnologie di Sviluppo per il Web

Manuale LiveBox WEB ADMIN.

Laboratorio di Sistemi Distribuiti Leonardo Mariani

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

Spiegazione Open Interest Storico:

Esercitazione n 4. Obiettivi

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans

Andrea Maioli Instant Developer: guida all uso

Start-up. Lo scopo di questa Guida è quello di fornire le prime informazioni per permettere al Presidente di Sezione di:

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Attiva la APP di GoToMeeting. Clicca su ATTIVA APP

Tale attività non è descritta in questa dispensa

filrbox Guida all uso dell applicazione DESKTOP Pag. 1 di 27

La geolocalizzazione

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Cliens Redigo Versione Aggiornamento al manuale.

Realizzazione di una classe con un associazione

What s App? S A L E S F O R C E A U T O M A T I O N

appunti delle lezioni Architetture client/server: applicazioni server

Guida iscrizione e fruizione corso FAD ASL VT. Formazione generale sulla sicurezza e salute per tutti i lavoratori (D.Lgs 81/08)

Tabelle di riferimento Pulsanti Inserire documento Predisposizione doc Approvazione Doc Numerazione Doc Pubblicazione Albo Webservice

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

MANUALE UTENTE INFOCAR REPAIR ACCESSO SMARTPHONE/TABLET

OwnCloud Guida all installazione e all uso

GUIDA GENERALE ALL USO DEL NUOVO SITO WEB

Sommario. 1. Cos è SecureDrive Caratteristiche Privacy dei dati: SecureVault... 4

ARCHIVIAZIONE DOCUMENTI

ALTRO. v (Maggio 2015)

ARCHIVIA PLUS - ARCHIFILE

Integrazione InfiniteCRM - MailUp

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

<?php include './include/page.php';

Gestione della posta elettronica con Round Cube webmail e Outlook Express utilizzando il protocollo IMAP

Corso Corso di di programmazione di di sistemi mobile 1 1. Android Laboratorio. Primo Progetto, Toast

GERARCHIE RICORSIVE - SQL SERVER 2008

a cura del Consorzio Cortexa Consulenza ed elaborazione

File Server Resource Manager (FSRM) File Screening

Guida per la creazione e la gestione di un profilo Google Scholar Citations

Guida iscrizione Community. istruzione.social.marche.it

monitoraggio dei locomotori via Internet

Questo breve manuale ha l intento di mostrare come integrare il tuo sito Joomla con la tua piattaforma E- Learning Docebo.

Manuale SeleFax ClientWeb Versione 2.0

PORTALE TERRITORIALE PER LA FATTURAZIONE ELETTRONICA

Mon Ami 3000 MACommerce La soluzione per il commercio elettronico totalmente integrata con Mon Ami 3000

E-Post Office Manuale utente

Cliccare su "Esegui" oppure su salva se si desidera effettuare l'installazione in un secondo momento.

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

MANUALE D USO MANUALE D USO

PROCEDURA ON-LINE PER LA COMPILAZIONE DELLE RICHIESTE DEI VOUCHER FORMATIVI PER GLI APPRENDISTI PARTECIPANTI AI MASTER AMMESSI A CATALOGO

Guida Rapida all uso del License Manager di ROCKEY4Smart (V )

GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB

COME DEFINIRE DELLE DOWNLOAD RULES CON VPOP3

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Servizio Amazon SNS

Come usare Intelligent VOICE

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Sommario. Introduzione L ambiente di lavoro Configurazioni generali e la struttura di Joomla La struttura di Joomla...

ISTRUZIONI PER L UTILIZZO DELLA SCHEDA INFORMATIZZATA E MODALITA DI INVIO DEI DATI - L. R. 162/98 PROGRAMMA

Guida alla Fruizione del Sistema Informativo per la Certificazione Energetica della Regione Abruzzo

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

Product Shipping Cost Guida d'installazione ed Utilizzo

con sicurezza dei dettagli del codice importexpressonline.dhl.com Vantaggi:

MANUALE OPERATIVO SOFTWARE INTERFACCIA. GFileT. Plug In CE.DI. Sud Italia srl

ARCHIVIA PLUS: ARCHIPROTO PEC

CROSSROAD. Gestione TENTATA VENDITA. Introduzione. Caratteristiche generali. Principali funzionalità modulo supervisore

Servizi e-business Acquisti Core a Catalogo elettronico Manuale Impresa (flusso standalone)

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008

Istruzioni per il corretto inserimento del tuo curriculum vitae in avanti >>

Gestione delle Cartelle dei Messaggi di Posta Elettronica

ImporterOne Manuale Export Plugin Prestashop

Servizio e-business Gare elettroniche standalone. Manuale Offerente

MANUALE PER LA GESTIONE DEL SERVIZIO DI NEWSLETTER

Utilizzo delle formule in Excel

Tecniche di progettazione e sviluppo di applicazioni mobile

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala

1 JSPDynPage, componenti portale e Java Server Pages

ISTRUZIONI DI INSTALLAZIONE PER ANDROID

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

2. PER CHI UTILIZZA IL SERVIZIO PER LA PRIMA VOLTA

GESTIRE UN LIONS CLUB

Transcript:

Corso di programmazione di sistemi mobile 1 Android Google Cloud Messaging

Corso di programmazione di sistemi mobile 2 Cos è Il Google Cloud Messaging o GCM è un servizio di Google che permette di inviare notifiche o dati da un server di terze parti ai dispositivi Android, ios o Chrome. Tutti gli aspetti dell invio dei dati, della gestione della coda e della consegna sui dispositivi sono gestiti dal GCM stesso. Esso permette agli sviluppatore di creare un esperienza utente eccellente limitando il numero di righe di codice da scrivere e permettendo una migliore gestione dell applicazione e del dispositivo. Perché utilizzare il GCM: API: semplici da utilizzare, non richiedono nessun pagamento e non prevedono limitazioni. Multicasting: un messaggio può essere ricevuto da più dispositivi e da più persone. Upstream: il dispositivo può inviare dei dati dal GCM che a sua volta li inoltrerà al server. Mittenti multipli: più server possono inviare messaggi alla stessa applicazione Archivio: il gcm conserva i messaggi fino 4 settimane Ottimizzazione: il gcm ha come obbiettivo il risparmio energetico mantenendo sempre e comunque il servizio attivo.

Corso di programmazione di sistemi mobile 3 Come funziona L utilizzo del GCM si configura in 4 step: 1. Configurazione del progetto sulla Google Developer Console 2. Preparazione dell ambiente Server per la registrazione dell app e l invio dei messaggi al GCM 3. Registrazione dell app al GCM e invio dei dati al Server 4. Gestione della ricezione dei messaggi da parte del GCM sull app

Corso di programmazione di sistemi mobile 4 Configurazione del GCM Prima di poter utilizzare il GCM all interno della propria app è necessario configurare l app sulla console di Google. Per far questo è necessario recarsi al seguente link https://developers.google.com/mobile/add?platform=android e seguire la procedura guidata.

Nota: Android package name deve corrispondere al package name dell applicazione che utilizzerà il GCM Corso di programmazione di sistemi mobile 5

Selezionare il Cloud Messaging e cliccare su Enable Google Cloud Messaging Corso di programmazione di sistemi mobile 6

Una volta attivato il servizio la console restituirà la Server Api Key e il Sender ID. Corso di programmazione di sistemi mobile 7

È possibile anche scaricare il file contenente le informazioni appena viste. Il file dovrà essere copiato all interno del modulo dell app che utilizzerà il GCM e che avrà il package name indicato nelle pagine precedenti. Corso di programmazione di sistemi mobile 8

Server Sul server di terze parti sarà necessario predisporre un database per salvare gli id dei device e per l invio dei messaggi al server gcm. L invio di un messaggio sarà cosi effettuato: public function send_notification($reg_id, $title, $message, $extra) { $url='https://android.googleapis.com/gcm/send'; $fields = array('registration_ids'=>array($reg_id), 'data'=>array('title'=>$title, 'message'=>$message, 'extra'=>$extra)); $headers = array('authorization:key = YourAuthorizationKey', //server key 'Content-Type: application/json'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $result = curl_exec($ch); curl_close($ch); echo $result; Corso di programmazione di sistemi mobile 9

Corso di programmazione di sistemi mobile 10 Android Per utilizzare il GCM all interno di un applicazione android sarà necessario eseguire diverse operazioni. Prima di tutto bisogna modificare il file build.gradle del progetto e aggiungere la seguente riga alle dependencies: 'com.google.gms:google-services:2.1.0-beta3 il file dovrà risultare: buildscript { repositories { jcenter() dependencies { classpath 'com.android.tools.build:gradle:2.0.0' classpath 'com.google.gms:google-services:2.1.0-beta3' allprojects { repositories { jcenter() task clean(type: Delete) { delete rootproject.builddir

Corso di programmazione di sistemi mobile 11 Dopodiché sarà necessario importare il file generato dalla google console contenente le informazioni per il gcm, aggiungere il plugin e la libreria all interno del file build.gradle dell applicazione. apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services <= plugin da aggiungere android { compilesdkversion 23 buildtoolsversion "23.0.3" defaultconfig { applicationid "it.test.gcm" minsdkversion 15 targetsdkversion 23 versioncode 1 versionname "1.0" buildtypes { release { minifyenabled false proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro' dependencies { compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.google.android.gms:play-services:8.3.0 <= libreria da importare

Corso di programmazione di sistemi mobile 12 Una volta sincronizzato il gradle sarà necessario modificare il manifest inserendo: 1. Un nuovo permesso <application-package-name> + ".permission.c2d_message«2. L utilizzo del permesso sopra dichiarato 3. L utilizzo del permesso WAKE_LOCK Questo farà si che nessun altra applicazione sul dispositivo possa registrarsi e ricevere i messaggi inviati dal gcm alla nostra applicazione. Sarà inoltre necessario all interno del tag application dichiarare: 3. Il receiver "com.google.android.gms.gcm.gcmreceiver" che si occuperà di gestire e smistare i messaggi ricevuti dal gcm 4. Un service che estende "GcmListenerService" che gestirà il messaggio ricevuto da GcmReceiver 5. Un service che estende "InstanceIDListenerService" che gestirà la creazione e l aggiornamento del token di registrazione

Corso di programmazione di sistemi mobile 13 <manifest xmlns:android=http://schemas.android.com/apk/res/android package="it.test.gcm"> <permission android:name="it.test.gcm.permission.c2d_message" android:protectionlevel="signature" /> <uses-permission android:name="it.test.gcm.permission.c2d_message" /> <uses-permission android:name="android.permission.wake_lock" /> <application --- > <receiver android:name="com.google.android.gms.gcm.gcmreceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.send" > <intent-filter> <action android:name="com.google.android.c2dm.intent.registration" /> <action android:name="com.google.android.c2dm.intent.receive" /> <category android:name="it.test.gcm" /> </intent-filter> </receiver> <service android:name=".gcmtestservice" android:exported="false" > <intent-filter> <action android:name="com.google.android.c2dm.intent.receive" /> </intent-filter> </service> <service android:name=".gcmtestidlistener" android:exported="false"> <intent-filter> <action android:name="com.google.android.gms.iid.instanceid" /> </intent-filter> </service> </application> </manifest>

Corso di programmazione di sistemi mobile 14 Ottenere un Token di registrazione Per poter inviare un messaggio ad un dispositivo bisogna che questo prima sia registrato presso il servizio di Google. Il gcm risponderà con il token che identificherà il dispositivo che verrà utilizzato dal server per inviare la push. Il token viene generato tramite le API InstanceID ed è necessario ottenere il token in un thread separato dal main thread, per esempio attraverso l utilizzo di un IntentService. Attaverso la classe InstanceIDListenerService possiamo sapere quando è necessario richiedere un token. public class GcmTestIDListener extends InstanceIDListenerService { @Override public void ontokenrefresh() { startservice(new Intent(this, RegistrationIntentService.class)); RegistrationIntentService è un IntentService che si occuperà di ottenere e salvare il token di registrazione.

Corso di programmazione di sistemi mobile 15 public class RegistrationIntentService extends IntentService { private static final String TAG = "RIService"; public RegistrationIntentService() { super(tag); @Override protected void onhandleintent(intent intent) { String token = ""; try { InstanceID instanceid = InstanceID.getInstance(this); token = instanceid.gettoken(gcmutils.sender_id, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); Log.i(TAG, "GCM Registration Token: " + token); sendregistrationtoserver(token); catch (Exception e) { Log.d(TAG, "Failed to get Registration Token", e); GcmUtils.saveToken(this, token); sendbroadcast(new Intent(GcmUtils.ACTION_REG_COMPLETED)); private void sendregistrationtoserver(string token) {

Corso di programmazione di sistemi mobile 16 Una volta completata la registrazione e salvato il token sul server l applicazione sarà pronta per ricevere i messaggi. Ogni volta che il dispositivo riceve un messaggio dal Gcm viene inviato all oggetto GcmListenerService che si occuperà della lettura e gestione delle informazioni presenti all interno del messaggio. public class GcmTestService extends GcmListenerService { private static final String TAG = "GcmTestService"; @Override public void onmessagereceived(string from, Bundle data) { String message = data.getstring("message"); Log.d(TAG, "From: " + from); Log.d(TAG, "Message: " + message); sendnotification(message); private void sendnotification(string message) {