définition - notification push android




Est-ce que Android prend en charge la notification push en temps réel? (11)

Firebase Cloud Messaging FCM FAQ est la nouvelle version de GCM. Il hérite de l'infrastructure de base de GCM pour livrer des messages de manière fiable sur Android, iOS et Chrome. Toutefois, ils continueront à prendre en charge GCM, car de nombreux développeurs utilisent aujourd'hui les SDK GCM pour gérer les notifications, et la mise à niveau des applications client prend du temps.

Depuis le 26 juin 2012, Google Cloud Messaging est le moyen préféré d'envoyer des messages aux applications exécutées sur des appareils.

Auparavant (et maintenant obsolète), le service s'appelait Cloud To Device Messaging .

Récemment, j'ai appris que les applications iPhone pouvaient recevoir des notifications presque instantanées pour les notifications d'applications aux applications .

Ceci est fourni sous la forme de notifications push, un protocole sur mesure qui maintient une connexion de données toujours à l'iPhone et des paquets binaires de messages à l'application, qui affiche des alertes incroyablement rapidement, entre 0,5 - 5 secondes de l'application serveur Temps de réponse. Ceci est envoyé en tant que données - plutôt que SMS - dans de très petits paquets chargés dans le cadre du plan de données et non comme des messages entrants.

Je voudrais savoir si, avec Android, il existe une fonctionnalité similaire ou s'il est possible d'implémenter quelque chose de proche en utilisant les API Android. Pour clarifier, je définis comme similaire:

  • Pas un message SMS, mais une solution axée sur les données
  • Comme en temps réel comme possible
  • Est évolutif, c'est-à-dire, en tant que partie serveur d'une application mobile, je pourrais notifier des milliers d'instances d'applications en quelques secondes

J'apprécie que l'application puisse être basée sur le style requête / réponse HTTP, mais idéalement, je ne veux pas interroger cela uniquement pour vérifier la notification; D'ailleurs, c'est comme égoutter le plan de données.



Il y a un nouvel effort open-source pour développer une bibliothèque Java pour les notifications push sur Android, en utilisant le serveur de comète Meteor en tant que backend. Vous pouvez le vérifier sur le Blog du Projet Deacon . Nous avons besoin de développeurs, alors passez le mot!


Ils ont leurs écouteurs qui doivent être utilisés par vous en utilisant leurs classes de bibliothèque dans votre code. Vous n'avez pas besoin de vous embêter à pousser. Vous devez envoyer le message au serveur du serveur va pousser le message à l'appareil. Ils utilisent OAuth. Concernant les protocoles, il existe deux méthodes utilisant CCS et XMPP. CCS utilise simplement XMPP comme couche de transport authentifiée, vous pouvez donc utiliser la plupart des bibliothèques XMPP pour gérer la connexion. Pour envoyer des notifications à l'appareil, vous pouvez écrire du code dans l'application Android pour envoyer ainsi que votre code de serveur. l'envoi du message ne sera effectué que par votre code. Le repos sera pris en charge par Google Server dans le cas de GCM. Vous pouvez vérifier les détails à ce lien

http://developer.android.com/google/gcm/server.html

Aussi, pour les problèmes de sécurité

Sécurité de la messagerie google cloud https://groups.google.com/forum/#!topic/android-gcm/M-EevBitbhQ

Si votre application n'est pas en cours d'exécution, les périphériques peuvent également recevoir une notification car vous devez écrire du code pour les écouteurs de diffusion. En arrière-plan, il écoutera le serveur et chaque fois qu'un paquet de message sera là, il recevra le message comme notification. Android a le service dont vous avez besoin pour ne pas vous en préoccuper. Vous n'avez qu'à utiliser ces ressources en utilisant la classe de bibliothèque qui rend votre travail plus facile et laissez-les écrire si votre application n'est pas en cours d'exécution, puis aussi recevoir une notification. De toute évidence, il y aurait un peu d'auditeur qui ferait l'application à recevoir. Vérifiez la section "Recevoir le message" dans ce lien

http://developer.android.com/google/gcm/client.html

Il accèdera à la demande des utilisateurs aussi. Pour GCM, ça va faire. Veuillez cocher "Envoyer un message"

http://developer.android.com/google/gcm/client.html


J'ai récemment commencé à jouer avec MQTT http://mqtt.org pour Android comme une façon de faire ce que vous demandez (c'est-à-dire pas de SMS mais de données, livraison de messages presque immédiate, évolutive, pas d'interrogation, etc.)

J'ai un billet de blog avec des informations générales sur ce sujet au cas où il serait utile http://dalelane.co.uk/blog/?p=938

(Remarque: MQTT est une technologie IBM, et je dois préciser que je travaille pour IBM.)


J'ai récemment développé http://pushdroid.org son une seule application qui devrait être installée sur le téléphone juste comme google l'a mis en application dans 2.2 cela fonctionne de 1.5 et diffuse par l'intention.


Jetez un oeil à la Xtify forme Xtify . On dirait que c'est ce qu'ils font,


Le problème avec GCM est qu'il y a beaucoup de configuration impliquée dans le processus:

  • Vous devez ajouter beaucoup de passe-partout à votre application Android
  • Vous devez configurer un serveur externe pour communiquer avec le serveur GCM
  • Vous devrez écrire des tests

Si vous aimez les choses simples (comme moi), vous devriez essayer UrbanAirship . C'est (IMHO) la façon la plus simple d'utiliser GCM dans votre application sans faire beaucoup de configuration. Il vous donne également une jolie interface graphique pour tester que vos messages GCM sont livrés correctement.

  • Vous pouvez trouver les docs et le guide de démarrage here
  • Vous pouvez trouver un exemple d'application here

Note: Je ne suis en aucun cas affilié à UrbanAirship


Si vous pouvez compter sur les bibliothèques Google présentes sur votre marché cible, vous pouvez revenir sur la fonctionnalité GTalk (en enregistrant une ressource sur le nom d'utilisateur existant - en interceptant les messages lorsqu'ils arrivent avec un BroadcastReceiver).

Si ce n'est pas le cas, et je suppose que vous ne pouvez pas , alors vous êtes en train de regrouper vos propres versions de XMPP . C'est une douleur, mais peut être rendue plus facile si XMPP est regroupé séparément en tant que bibliothèque autonome.

Vous pouvez également envisager PubSubHubub , mais je n'ai aucune idée de l'utilisation du réseau de celui-ci. Je crois qu'il est construit au sommet de XMPP.


XMPP est une bonne solution. Je l'ai utilisé pour une application push, en temps réel, Android. XMPP est puissant, hautement extensible et facile à intégrer et à utiliser.

Il y a des tas de serveurs XMPP gratuits (bien que par courtoisie vous ne devriez pas en abuser) et qu'il existe des serveurs open source que vous pouvez utiliser dans l'une de vos propres boîtes. OpenFire est un excellent choix.

La bibliothèque que vous voulez n'est pas Smack comme indiqué ci-dessus, c'est aSmack . Mais notez, ceci est un environnement de construction - vous devrez construire la bibliothèque.

C'est un calcul que j'ai fait sur l'impact de la vie de la batterie d'une solution XMPP:

Le client Android doit maintenir une connexion TCP persistante en se réveillant périodiquement pour envoyer un signal de présence au serveur XMPP.
Cela impose clairement un coût en termes d'utilisation de l'énergie. Une estimation de ce coût est fournie ci-dessous:

  • Utilisation d'une batterie de 1400 mAh (fournie avec le Nexus One et le HTC Desire)
  • Un périphérique inactif, connecté à un réseau 3G, utilise environ 5 mA
  • Le réveil, le rythme cardiaque, le cycle de sommeil se produit toutes les 5 minutes, prend trois secondes pour compléter et utilise 300mA
  • Le coût d'utilisation de la batterie par heure est donc:
    • 36 secondes 300mA = 3mAh envoi du rythme cardiaque
    • 3600 secondes 5mA = 5mAh au ralenti
    • 4:95 + 3 = 7: 95mAh combinés
  • Une batterie de 1400 mAh dure environ 11,6 jours au repos et 7,3 jours lors de l'exécution de l'application, ce qui représente une réduction d'environ 37% de la durée de vie de la batterie.
  • Cependant, une réduction de la durée de vie de la batterie de 37% représente le pire cas absolu dans la pratique étant donné que les dispositifs sont rarement complètement inactifs.

Comme GTalk est parti du SDK, il pourrait être une bonne idée de faire un système de messagerie push «standard». De cette façon, un seul service doit fonctionner, une seule connexion tcp supplémentaire doit être ouverte. Les applications doivent parler à ce service en utilisant Intents et doivent d'abord demander l'autorisation d'envoyer et de recevoir une notification du service. Le service doit alors informer l'utilisateur qu'une nouvelle application souhaite envoyer et recevoir des messages. L'utilisateur accordera alors ou refusera la permission, ainsi il reste dans le contrôle. L'application va alors enregistrer une action + catégorie au service, de sorte que le service sache comment délivrer le message poussé.

Est-ce que la bonne idée ou pas?





push-notification