SlideShare une entreprise Scribd logo
1  sur  26
Push Notification
Pour smartphones Android
Lightning Talk
Ben Rabah Wajdi – Orange Developer Center
19/02/2014 Tunis
2 Orange restrictedOrange presentation
Plan
section 1 Qu’est ce que le push notification?
section 2 Pourquoi opter pour le push notification?
section 3 Les méthodes pour avoir des mises à jours
section 4 Composantes
section 5 Prêt? Partez!
section 6 Tutorial pas à pas
section 7 Conclusion
3 Orange restrictedOrange presentation
Qu’est ce que le Push Notification ?
 Gardez le contact avec vos utilisateurs, apportez leur de
l’information ponctuelle et dynamisez l’utilisation de votre
application… sans que celle-ci n’ait besoin d’être en cours
d’exécution ! C’est ce que permettent les notifications push sur
nos smartphones.
4 Orange restrictedOrange presentation
Pourquoi opter pour le push notification ?
5 Orange restrictedOrange presentation
Les méthodes pour avoir des mises à jours
 Transférer le plus tôt possible
 Conserver la batterie
 Minimiser le taux de données transférées aux
utilisateurs
6 Orange restrictedOrange presentation
Petite comparaison entre IOS et Android
7 Orange restricted
Quels sont les composantes pour mettre en place le
push notification ?
8 Orange restricted
La confiance
9 Orange restricted
Oui mais pratiquement comment ça se passe ?
10 Orange restricted
Oui mais pratiquement comment ça se passe ?
11 Orange restricted
Oui mais pratiquement comment ça se passe ?
12 Orange restricted
Résumons
13 Orange restricted
Ready ? Go !
Maintenant mon serveur est enregistré avec
Google et a au moins un smartphone pour
lequel il peut envoyer des messages.
14 Orange restricted
C’est bien beau de parler mais pratiquement comment
ça se passe ?
15 Orange restricted
Accès à Google Api console
• Aller à Google APIs Console page et noter le projectId .
16 Orange restricted
Activation de l’Api
17 Orange restricted
Api key
18 Orange restricted
Implémentation du serveur
• Installation de Xampp ou Wamp.
• Accès à : http://localhost/phpmyadmin
• Création d’une table d’utilisateurs :
CREATE TABLE IF NOT EXISTS `gcm_users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`gcm_regid` text,
`name` varchar(50) NOT NULL,
`email` varchar(255) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT
CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
AUTO_INCREMENT=1 ;
• S’assurer que l’extension curl est activée (activée par défaut à Xampp)
19 Orange restricted
Implémentation du serveur
• Créez le répertoire gcm_server_php sous htdocs de xampp (ou www de
wamp)
• Créez les fichiers suivants :
 config.php (pour configurer les accès , BD, mot de passe, user…)
 db_connect.php (pour définir les opérations de base : connexion,
déconnexion…)
 db_functions.php (responsable de requêtes sur l’utilisateur)
 GCM.php (qui envoi les demandes de notifications au serveur)
 register.php (enregistre les smartphones)
 send_message.php (requête au serveur GCM puis envoi des push
notifications au smartphone)
 index.php ( une page qui affiche l’ensemble des smartphones
enregistrés et contrôle tout envoi)
20 Orange restricted
Préparation du projet Android
• Allez à SDK manager et installez Google Cloud Messaging for Android Library
sous la section Extras.
• Après installation, allez au repertoire :
Andoird_SDK_Folderextrasgooglegcmgcm-clientdist
• Copier le fichier « gcm.jar » au répertoire lib de votre projet , puis incluez ce
dernier dans le build path.
21 Orange restricted
Mise en place du projet Android
• Inclure les permissions nécessaires dans le manifest.
• Définir un broadcast receiver responsable d’envoi, réception (des push) et
d’enregistrement des smartphones.
• Définir un service qui va contrôler notre broadcast.
• Définir la classe AlertDialogManager.java qui va afficher une alerte dialog dans
le cas de succès ou d’échec de connexion.
• Définir la classe ConnectionDetector.java qui a pour rôle de connaitre l’état
de la connexion internet.
• Définir la classe CommonUtilities.java qui contient la configuration de GCM
et l’url de notre serveur.
• SERVER_URL = ici on travaille en localhost donc notre IP
• SENDER_ID = l’id du projet donné auparavant par Google.
22 Orange restricted
Mise en place du projet Android
• Définir la classe ServerUtilities.java : abonne/désabonne un smartphone, et
responsable de l’envoi de données au serveur aussi .
• Définir la classe GCMIntentService.java : joue le rôle d’écouteur suite aux
différentes actions (enregistrement d’un smartphone, réception de message …)
• Définir la classe RegisterActivity.java responsable de l’enregistrement des
smartphones.
• Définir l’activité MainActivity.java qui va représenter notre point de départ et
va notifier le serveur de l’abonnement d’un nouveau smartphone.
23 Orange restricted
Mise en place du projet Android
• Définir le layout activity_register.xml permettant d’abonner un smartphone.
• Définir le fichier string.xml permettant de stocker les informations nécessaires
aux messages d’erreurs etc. … (pattern utilisé pour ce faire)
• J’ai ajouté d’autres classes comme WakeLocker.java qui ne laisse pas le
smartphone entrer en mode veille.
24 Orange restricted
Démonstration
Aussi disponible ici : https://www.dropbox.com/s/eto4dkgyqzy4d5l/Push%20notification.mp4
25 Orange restricted
Conclusion : Limites
 Messages de très petite longueur.
 Pas de garantie si le message est bien
sécurisé.
 Envoi :
 Non garanti
 Les utilisateurs peuvent se désabonner.
 Les utilisateurs peuvent désactiver les notifications afin
de bien gérer la batterie.
Merci
Orange, the Orange mark and any other Orange product
or service names referred to in this material are trade marks
of Orange Brand Services Limited.
Orange restricted.

Contenu connexe

En vedette

ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2dmc digital media center GmbH
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPelliando dias
 
Otimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxOtimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxElton Minetto
 
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013Daniel Rehn
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaManuel Menezes de Sequeira
 
Présentation LMAX Disruptor So@t
Présentation LMAX Disruptor So@tPrésentation LMAX Disruptor So@t
Présentation LMAX Disruptor So@tFrancois Ostyn
 
Lean Kanban FR 2013 - Vin et kanban
Lean Kanban FR 2013 - Vin et kanbanLean Kanban FR 2013 - Vin et kanban
Lean Kanban FR 2013 - Vin et kanbanJulien Fallet
 
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...dbi services
 
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013Daniel Rehn
 
Presentació assamblea
Presentació assamblea Presentació assamblea
Presentació assamblea FC Barcelona
 
Campus M21 | Medienpraxis III: Online / Social Media - Vorlesung II
Campus M21 | Medienpraxis III: Online / Social Media - Vorlesung IICampus M21 | Medienpraxis III: Online / Social Media - Vorlesung II
Campus M21 | Medienpraxis III: Online / Social Media - Vorlesung IIDaniel Rehn
 
Què ha fet ICV-EUiA amb el meu vot?
Què ha fet ICV-EUiA amb el meu vot?Què ha fet ICV-EUiA amb el meu vot?
Què ha fet ICV-EUiA amb el meu vot?iniciativaverds
 
Atelier agile 2009_09_27
Atelier agile 2009_09_27Atelier agile 2009_09_27
Atelier agile 2009_09_27domidp
 
02.10.2011 SC B.A.T II
02.10.2011   SC B.A.T II02.10.2011   SC B.A.T II
02.10.2011 SC B.A.T IIHerdwangerSV
 
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013Daniel Rehn
 

En vedette (20)

Lightning Talks Réalité Augmentée
 Lightning Talks Réalité Augmentée Lightning Talks Réalité Augmentée
Lightning Talks Réalité Augmentée
 
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
 
Otimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxOtimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - Tchelinux
 
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Présentation LMAX Disruptor So@t
Présentation LMAX Disruptor So@tPrésentation LMAX Disruptor So@t
Présentation LMAX Disruptor So@t
 
Digitale Mentalität II
Digitale Mentalität IIDigitale Mentalität II
Digitale Mentalität II
 
Lean Kanban FR 2013 - Vin et kanban
Lean Kanban FR 2013 - Vin et kanbanLean Kanban FR 2013 - Vin et kanban
Lean Kanban FR 2013 - Vin et kanban
 
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
 
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
 
NotORM
NotORMNotORM
NotORM
 
Presentació assamblea
Presentació assamblea Presentació assamblea
Presentació assamblea
 
Campus M21 | Medienpraxis III: Online / Social Media - Vorlesung II
Campus M21 | Medienpraxis III: Online / Social Media - Vorlesung IICampus M21 | Medienpraxis III: Online / Social Media - Vorlesung II
Campus M21 | Medienpraxis III: Online / Social Media - Vorlesung II
 
Tutorialphpmyadmin
TutorialphpmyadminTutorialphpmyadmin
Tutorialphpmyadmin
 
Einführung in SCRUM
Einführung in SCRUMEinführung in SCRUM
Einführung in SCRUM
 
Què ha fet ICV-EUiA amb el meu vot?
Què ha fet ICV-EUiA amb el meu vot?Què ha fet ICV-EUiA amb el meu vot?
Què ha fet ICV-EUiA amb el meu vot?
 
Atelier agile 2009_09_27
Atelier agile 2009_09_27Atelier agile 2009_09_27
Atelier agile 2009_09_27
 
02.10.2011 SC B.A.T II
02.10.2011   SC B.A.T II02.10.2011   SC B.A.T II
02.10.2011 SC B.A.T II
 
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
 

Similaire à Push Notification

Gestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerGestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerMohamet Lamine DIOP
 
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...sametmax
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014Benoît de CHATEAUVIEUX
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasMicrosoft
 
Solution d'OTA
Solution d'OTASolution d'OTA
Solution d'OTASidereo
 
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Christophe Furmaniak
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderMohamed Ben Bouzid
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1Marc Bojoly
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASGuillaume Sauthier
 
Logiciels de prise de contrôle day
Logiciels de prise de contrôle dayLogiciels de prise de contrôle day
Logiciels de prise de contrôle daymickaelday
 
Reseau entreprise
Reseau entrepriseReseau entreprise
Reseau entrepriseSAIDRAISS2
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx FranceMarc Bojoly
 
Presentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedPresentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedTECOS
 
Filtrage WEB: SQUID ET SQUIDGARD
Filtrage WEB: SQUID ET SQUIDGARDFiltrage WEB: SQUID ET SQUIDGARD
Filtrage WEB: SQUID ET SQUIDGARDMohamet Lamine DIOP
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 

Similaire à Push Notification (20)

Push notification
Push notificationPush notification
Push notification
 
Gestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerGestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzer
 
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
Présentation de WAMP.ws, le protocole pour faire du PUB/SUB et RPC over Webso...
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de Jonas
 
Solution d'OTA
Solution d'OTASolution d'OTA
Solution d'OTA
 
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
 
rapport.pptx
rapport.pptxrapport.pptx
rapport.pptx
 
Mysql
MysqlMysql
Mysql
 
Rapport des travaux
Rapport des travauxRapport des travaux
Rapport des travaux
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnAS
 
Logiciels de prise de contrôle day
Logiciels de prise de contrôle dayLogiciels de prise de contrôle day
Logiciels de prise de contrôle day
 
Reseau entreprise
Reseau entrepriseReseau entreprise
Reseau entreprise
 
Perf university
Perf universityPerf university
Perf university
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
 
Presentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedPresentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamed
 
Filtrage WEB: SQUID ET SQUIDGARD
Filtrage WEB: SQUID ET SQUIDGARDFiltrage WEB: SQUID ET SQUIDGARD
Filtrage WEB: SQUID ET SQUIDGARD
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 

Plus de ODC Orange Developer Center

Tendances des applications mobiles en 2014 de Noha Jaafar
Tendances des applications mobiles en 2014 de Noha JaafarTendances des applications mobiles en 2014 de Noha Jaafar
Tendances des applications mobiles en 2014 de Noha JaafarODC Orange Developer Center
 

Plus de ODC Orange Developer Center (20)

Graphiste vs dévelopeur de Noha Jaafar
Graphiste vs dévelopeur de Noha JaafarGraphiste vs dévelopeur de Noha Jaafar
Graphiste vs dévelopeur de Noha Jaafar
 
Tendances des applications mobiles en 2014 de Noha Jaafar
Tendances des applications mobiles en 2014 de Noha JaafarTendances des applications mobiles en 2014 de Noha Jaafar
Tendances des applications mobiles en 2014 de Noha Jaafar
 
Countly
CountlyCountly
Countly
 
Owasp
OwaspOwasp
Owasp
 
Frameworks de développement Mobile
Frameworks de développement MobileFrameworks de développement Mobile
Frameworks de développement Mobile
 
Les bibliothèques sous Android
Les bibliothèques sous AndroidLes bibliothèques sous Android
Les bibliothèques sous Android
 
Les Fragments
Les FragmentsLes Fragments
Les Fragments
 
Sencha Touch
Sencha TouchSencha Touch
Sencha Touch
 
Personnalisation bouton et animations Android
Personnalisation bouton et animations AndroidPersonnalisation bouton et animations Android
Personnalisation bouton et animations Android
 
Android Device Monitor
Android Device MonitorAndroid Device Monitor
Android Device Monitor
 
Monkey & Monkey Runner
Monkey & Monkey RunnerMonkey & Monkey Runner
Monkey & Monkey Runner
 
Itinéraire sur Google Maps
Itinéraire sur Google MapsItinéraire sur Google Maps
Itinéraire sur Google Maps
 
Partage sur les réseaux sociaux
Partage sur les réseaux sociauxPartage sur les réseaux sociaux
Partage sur les réseaux sociaux
 
Shared Preferences
Shared PreferencesShared Preferences
Shared Preferences
 
Action Bar - AB & ActionBarSherlock - ABS
Action Bar - AB & ActionBarSherlock - ABSAction Bar - AB & ActionBarSherlock - ABS
Action Bar - AB & ActionBarSherlock - ABS
 
Upload - Download
Upload - DownloadUpload - Download
Upload - Download
 
Upload - Download
Upload - DownloadUpload - Download
Upload - Download
 
Sensors
SensorsSensors
Sensors
 
Framework php « Codeignitor »
Framework php « Codeignitor » Framework php « Codeignitor »
Framework php « Codeignitor »
 
J Unit
J UnitJ Unit
J Unit
 

Push Notification

  • 1. Push Notification Pour smartphones Android Lightning Talk Ben Rabah Wajdi – Orange Developer Center 19/02/2014 Tunis
  • 2. 2 Orange restrictedOrange presentation Plan section 1 Qu’est ce que le push notification? section 2 Pourquoi opter pour le push notification? section 3 Les méthodes pour avoir des mises à jours section 4 Composantes section 5 Prêt? Partez! section 6 Tutorial pas à pas section 7 Conclusion
  • 3. 3 Orange restrictedOrange presentation Qu’est ce que le Push Notification ?  Gardez le contact avec vos utilisateurs, apportez leur de l’information ponctuelle et dynamisez l’utilisation de votre application… sans que celle-ci n’ait besoin d’être en cours d’exécution ! C’est ce que permettent les notifications push sur nos smartphones.
  • 4. 4 Orange restrictedOrange presentation Pourquoi opter pour le push notification ?
  • 5. 5 Orange restrictedOrange presentation Les méthodes pour avoir des mises à jours  Transférer le plus tôt possible  Conserver la batterie  Minimiser le taux de données transférées aux utilisateurs
  • 6. 6 Orange restrictedOrange presentation Petite comparaison entre IOS et Android
  • 7. 7 Orange restricted Quels sont les composantes pour mettre en place le push notification ?
  • 9. 9 Orange restricted Oui mais pratiquement comment ça se passe ?
  • 10. 10 Orange restricted Oui mais pratiquement comment ça se passe ?
  • 11. 11 Orange restricted Oui mais pratiquement comment ça se passe ?
  • 13. 13 Orange restricted Ready ? Go ! Maintenant mon serveur est enregistré avec Google et a au moins un smartphone pour lequel il peut envoyer des messages.
  • 14. 14 Orange restricted C’est bien beau de parler mais pratiquement comment ça se passe ?
  • 15. 15 Orange restricted Accès à Google Api console • Aller à Google APIs Console page et noter le projectId .
  • 18. 18 Orange restricted Implémentation du serveur • Installation de Xampp ou Wamp. • Accès à : http://localhost/phpmyadmin • Création d’une table d’utilisateurs : CREATE TABLE IF NOT EXISTS `gcm_users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `gcm_regid` text, `name` varchar(50) NOT NULL, `email` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; • S’assurer que l’extension curl est activée (activée par défaut à Xampp)
  • 19. 19 Orange restricted Implémentation du serveur • Créez le répertoire gcm_server_php sous htdocs de xampp (ou www de wamp) • Créez les fichiers suivants :  config.php (pour configurer les accès , BD, mot de passe, user…)  db_connect.php (pour définir les opérations de base : connexion, déconnexion…)  db_functions.php (responsable de requêtes sur l’utilisateur)  GCM.php (qui envoi les demandes de notifications au serveur)  register.php (enregistre les smartphones)  send_message.php (requête au serveur GCM puis envoi des push notifications au smartphone)  index.php ( une page qui affiche l’ensemble des smartphones enregistrés et contrôle tout envoi)
  • 20. 20 Orange restricted Préparation du projet Android • Allez à SDK manager et installez Google Cloud Messaging for Android Library sous la section Extras. • Après installation, allez au repertoire : Andoird_SDK_Folderextrasgooglegcmgcm-clientdist • Copier le fichier « gcm.jar » au répertoire lib de votre projet , puis incluez ce dernier dans le build path.
  • 21. 21 Orange restricted Mise en place du projet Android • Inclure les permissions nécessaires dans le manifest. • Définir un broadcast receiver responsable d’envoi, réception (des push) et d’enregistrement des smartphones. • Définir un service qui va contrôler notre broadcast. • Définir la classe AlertDialogManager.java qui va afficher une alerte dialog dans le cas de succès ou d’échec de connexion. • Définir la classe ConnectionDetector.java qui a pour rôle de connaitre l’état de la connexion internet. • Définir la classe CommonUtilities.java qui contient la configuration de GCM et l’url de notre serveur. • SERVER_URL = ici on travaille en localhost donc notre IP • SENDER_ID = l’id du projet donné auparavant par Google.
  • 22. 22 Orange restricted Mise en place du projet Android • Définir la classe ServerUtilities.java : abonne/désabonne un smartphone, et responsable de l’envoi de données au serveur aussi . • Définir la classe GCMIntentService.java : joue le rôle d’écouteur suite aux différentes actions (enregistrement d’un smartphone, réception de message …) • Définir la classe RegisterActivity.java responsable de l’enregistrement des smartphones. • Définir l’activité MainActivity.java qui va représenter notre point de départ et va notifier le serveur de l’abonnement d’un nouveau smartphone.
  • 23. 23 Orange restricted Mise en place du projet Android • Définir le layout activity_register.xml permettant d’abonner un smartphone. • Définir le fichier string.xml permettant de stocker les informations nécessaires aux messages d’erreurs etc. … (pattern utilisé pour ce faire) • J’ai ajouté d’autres classes comme WakeLocker.java qui ne laisse pas le smartphone entrer en mode veille.
  • 24. 24 Orange restricted Démonstration Aussi disponible ici : https://www.dropbox.com/s/eto4dkgyqzy4d5l/Push%20notification.mp4
  • 25. 25 Orange restricted Conclusion : Limites  Messages de très petite longueur.  Pas de garantie si le message est bien sécurisé.  Envoi :  Non garanti  Les utilisateurs peuvent se désabonner.  Les utilisateurs peuvent désactiver les notifications afin de bien gérer la batterie.
  • 26. Merci Orange, the Orange mark and any other Orange product or service names referred to in this material are trade marks of Orange Brand Services Limited. Orange restricted.

Notes de l'éditeur

  1. Android propose depuis la version 2.2 de l’OS la gestion de ces messages légers par l’utilisation des services C2DM (Cloud To Device Messaging) de Google
  2. Android propose depuis la version 2.2 de l’OS la gestion de ces messages légers par l’utilisation des services C2DM (Cloud To Device Messaging) de Google
  3. Espérons que google traite mes données d’une facon confidentielle.
  4. Remarque : Vous allez trouver ces fichiers en annexe de cette présentation. Je les ai mis en disposition pour vous sous cette adresse : https://www.dropbox.com/s/574g9wsve13e1wi/gcm_server_php.zip
  5. (Si vous ne le trouvez pas, merci de mettre à jours votre SDK manager )
  6. Tout le projet est disponible à cette adresse :
  7. Tout le projet est disponible à cette adresse :
  8. Tout le projet est disponible à cette adresse :
  9. Tout le projet est disponible à cette adresse : https://www.dropbox.com/s/aa9c7afv3j0d234/AndroidPushNotificationsUsingGCM.zip