Je cherche à écrire une application qui reçoit des alertes poussées d'un serveur. J'ai trouvé quelques méthodes pour ce faire.
- SMS - Intercepter le SMS entrant et lancer une extraction depuis le serveur
- Sondez le serveur périodiquement
Chacun a ses propres limites. SMS - aucune garantie sur l'heure d'arrivée. Le sondage peut décharger la batterie.
Avez-vous une meilleure suggestion s'il vous plaît? Merci beaucoup.
Réponses:
La réponse officielle de Google est le
cadre de messagerie Android Cloud to Device (obsolète)Google Cloud Messaging (obsolète)Firebase Cloud MessagingCela fonctionnera sur Android> = 2.2 (sur les téléphones qui ont le Play Store).
la source
( publication croisée d'une réponse que j'ai donnée à une question similaire - Android prend-il en charge la notification push en temps quasi réel? )
J'ai récemment commencé à jouer avec MQTT http://mqtt.org pour Android comme moyen de faire ce genre de chose (c'est-à-dire une notification push qui n'est pas SMS mais pilotée par les données, la livraison de messages presque immédiate, pas d'interrogation, etc.)
J'ai un article de blog avec des informations générales à ce sujet au cas où cela serait utile
http://dalelane.co.uk/blog/?p=938
(Remarque: MQTT est une technologie IBM, et je dois souligner que je travaille pour IBM.)
la source
Ma compréhension / expérience avec la notification push Android est:
C2DMGCM - Si votre plate-forme Android cible est 2.2+, alors allez-y. Un seul hic, les utilisateurs d'appareils doivent toujours être connectés avec un compte Google pour recevoir les messages.MQTT - Approche basée sur Pub / Sub, nécessite une connexion active de l'appareil, peut décharger la batterie si elle n'est pas implémentée de manière sensée.
Diacre - Peut ne pas être bon à long terme en raison du soutien limité de la communauté.
Edit : Ajouté le 25 novembre 2013
GCM - Google dit ...
la source
Cadre de messagerie Android Cloud to Device
Important: C2DM est officiellement obsolète depuis le 26 juin 2012. Cela signifie que C2DM a cessé d'accepter de nouveaux utilisateurs et demandes de quota. Aucune nouvelle fonctionnalité ne sera ajoutée à C2DM. Cependant, les applications utilisant C2DM continueront de fonctionner. Les développeurs C2DM existants sont encouragés à migrer vers la nouvelle version de C2DM, appelée Google Cloud Messaging pour Android (GCM). Voir le document de migration C2DM vers GCM pour plus d'informations. Les développeurs doivent utiliser GCM pour les nouveaux développements.
Veuillez vérifier le lien suivant:
http://developer.android.com/guide/google/gcm/index.html
la source
Ici, j'ai écrit quelques étapes pour savoir comment obtenir RegID et notification à partir de zéro
Vous pouvez trouver un tutoriel complet dans le lien URL ci-dessous
Coupure de code pour obtenir l'ID d'enregistrement (jeton de périphérique pour la notification push).
Configurer le projet pour GCM
Mettre à jour le fichier AndroidManifest
Pour activer GCM dans notre projet, nous devons ajouter quelques autorisations dans notre fichier manifeste. Allez sur AndroidManifest.xml et ajoutez le code ci-dessous Ajouter une autorisation
Ajouter une déclaration de récepteur de diffusion GCM
ajoutez la déclaration GCM Broadcast Receiver dans votre balise d'application
Ajouter la déclaration GCM Servie
Obtenir l'ID d'enregistrement (jeton d'appareil pour la notification push)
Allez maintenant à votre activité de lancement / Splash
Ajouter des constantes et des variables de classe
Mettre à jour les méthodes OnCreate et OnResume
Remarque : veuillez stocker REGISTRATION_KEY, il est important pour l'envoi d'un message PN à GCM de garder également dans le mien ce sera unique pour tous les appareils, en utilisant cela seul GCM enverra une notification push.
Recevoir des notifications push
Ajouter une classe de récepteur de diffusion GCM
Comme nous avons déjà déclaré «GcmBroadcastReceiver.java» dans notre fichier manifeste, nous allons donc créer ce code de classe de récepteur de mise à jour de classe de cette façon
Ajouter une classe de service GCM
Comme nous avons déjà déclaré «GcmBroadcastReceiver.java» dans notre fichier manifeste, nous allons donc créer ce code de classe de récepteur de mise à jour de classe de cette façon
la source
Il y a un nouvel effort open source pour développer une bibliothèque Java pour les notifications push sur Android basée sur le serveur Web Meteor. Vous pouvez le vérifier sur le blog du projet Deacon , où vous trouverez des liens vers Meteor et le référentiel GitHub du projet. Nous avons besoin de développeurs, alors faites passer le mot!
la source
Vous pouvez utiliser Xtify ( http://developer.xtify.com ) - ils ont un service Web de notifications push qui fonctionne avec leur SDK. c'est gratuit et jusqu'à présent, cela a très bien fonctionné pour moi.
la source
ou....
la source
Je recommande d'utiliser GCM - Google Cloud Messaging pour Android C'est gratuit, et pour des utilisations simples, cela devrait être très facile.
Cependant, il nécessite de maintenir un serveur tiers pour envoyer les notifications en votre nom. Si vous voulez éviter qu'il existe de très bonnes solutions industrielles pour le service de notifications push Android:
Diclaimer - Je travaille dans PushApps et j'utilise également leur produit dans mes applications depuis plus d'un an maintenant.
la source
Depuis le 18/05/2016, Firebase est la plate-forme unifiée de Google pour les développeurs mobiles, y compris les notifications push.
la source
Je crains que vous n'ayez trouvé les deux méthodes possibles. Google allait, au moins initialement, implémenter une API GChat que vous pourriez utiliser pour une implémentation push / pull. Malheureusement, cette bibliothèque a été supprimée par Android 1.0.
la source
Je ne sais pas si c'est toujours utile. J'ai réalisé quelque chose comme ça avec une bibliothèque java à http://www.pushlets.com/
Bien que le faire dans un service n'empêchera pas Android de le fermer et de tuer le fil d'écoute.
la source
Google C2DM est désormais déprécié, pour cela, vous devez o utiliser le nouveau service GCM (Google Cloud Messaging). Pour la documentation, voir http://developer.android.com/guide/google/gcm/gs.html
la source
C2DM: vos utilisateurs d'applications doivent avoir le compte gmail.
MQTT: lorsque votre connexion atteindra 1024, il cessera de fonctionner car il a utilisé "select model" de linux.
Il existe un service push gratuit et une api pour Android, vous pouvez l'essayer: http://push-notification.org
la source
Méthode gratuite et facile:
Si votre base d'utilisateurs cible n'est pas importante (moins de 1 000) et que vous souhaitez commencer par un service gratuit, alors Airbop est le meilleur et le plus pratique.
Site Airbop Il utilise le service Google Cloud Messaging via son API et offre de bonnes performances. Je l'ai utilisé pour deux de mes projets et c'était facile à mettre en œuvre.
Des services comme et Urbanship sont excellents mais fournissent une pile de déploiement complète et pas seulement la chose des notifications push.
Si seul le service push est votre cible, Airbop fonctionnera bien.
Je n'ai pas utilisé Pushwoosh , mais c'est aussi un excellent choix. Il permet de pousser jusqu'à 1 000 000 d'appareils gratuitement
la source
Je suggère d'utiliser à la fois SMS et HTTP. Si l'utilisateur n'est pas connecté, envoyez un SMS à son téléphone pour l'informer qu'il y a un message en attente.
Voilà comment fonctionne ce service Ericsson Labs: https://labs.ericsson.com/apis/mobile-java-push/
Si vous l'implémentez vous-même, la partie délicate consiste à supprimer le SMS entrant sans que l'utilisateur ne le voie. Ou peut-être que ce n'est pas grave s'ils le voient dans votre cas.
Il semble que cela fonctionne: Suppression de SMS à l'aide de BroadCastReceiver - Android
Oui, écrire du code comme celui-ci peut être dangereux et vous pouvez potentiellement ruiner la vie de quelqu'un parce que votre application a supprimé un SMS qu'elle ne devrait pas avoir.
la source
Vous pouvez utiliser Google Cloud Messaging ou GCM , c'est gratuit et facile à utiliser. Vous pouvez également utiliser des serveurs push tiers comme PushWoosh, ce qui vous donne plus de flexibilité
la source
Il y a beaucoup de serveurs tiers comme Urban Airship , Xtify, Mainline , ... qui permettent d'envoyer non seulement sur Android, mais aussi sur iOs, Windows Phone ...
la source
Messagerie cloud Firebase (FCM) est la nouvelle version de GCM. FCM est une solution de messagerie multiplateforme qui vous permet d'envoyer des messages en toute sécurité et gratuitement. Hérite de l'infrastructure centrale de GCM pour délivrer des messages de manière fiable sur Android, iOS, Web (javascript), Unity et C ++.
Au 10 avril 2018, Google avait refusé GCM. Le serveur GCM et les API clientes sont obsolètes et seront supprimés le 11 avril 2019. Google recommande de migrer les applications GCM vers Firebase Cloud Messaging (FCM), qui hérite de l'infrastructure GCM fiable et évolutive.
Ressource
la source
Vous pouvez utiliser Pusher
Il s'agit d'un service hébergé qui facilite l'ajout de données et de fonctionnalités en temps réel aux applications Web et mobiles.
Pusher propose des bibliothèques à intégrer dans tous les principaux runtimes et frameworks.
PHP, Ruby, Python, Java, .NET, Go and Node
sur le serveurJavaScript, Objective-C (iOS) and Java (Android)
sur le client.la source