Ich möchte eine App schreiben, die Push-Benachrichtigungen von einem Server empfängt. Ich habe ein paar Methoden gefunden, um dies zu tun.
- SMS - Fangen Sie die eingehende SMS ab und initiieren Sie einen Pull vom Server
- Fragen Sie den Server regelmäßig ab
Jeder hat seine eigenen Grenzen. SMS - keine Garantie bei Ankunft. Poll kann den Akku entladen.
Haben Sie bitte einen besseren Vorschlag? Vielen Dank.
Antworten:
Die offizielle Antwort von Google ist das
Android Cloud to Device Messaging Framework (veraltet)Google Cloud Messaging (veraltet)Firebase Cloud MessagingEs funktioniert unter Android> = 2.2 (auf Telefonen mit dem Play Store).
quelle
( Cross-Posting von einer Antwort, die ich auf eine ähnliche Frage gegeben habe - Unterstützt Android Push-Benachrichtigungen in Echtzeit? )
Ich habe vor kurzem angefangen, mit MQTT http://mqtt.org für Android zu spielen, um so etwas zu tun (dh Push-Benachrichtigung, die nicht SMS, sondern datengesteuert ist, fast sofortige Nachrichtenübermittlung, keine Abfrage usw.).
Ich habe einen Blog-Beitrag mit Hintergrundinformationen dazu, falls es hilfreich ist
http://dalelane.co.uk/blog/?p=938
(Hinweis: MQTT ist eine IBM Technologie, und ich sollte darauf hinweisen, dass ich für IBM arbeite.)
quelle
Mein Verständnis / meine Erfahrung mit Android Push-Benachrichtigungen sind:
C2DMGCM - Wenn Ihre Ziel-Android-Plattform 2.2+ ist, dann machen Sie es. Nur ein Haken: Gerätebenutzer müssen immer mit einem Google-Konto angemeldet sein , um die Nachrichten zu erhalten.MQTT - Pub / Sub-basierter Ansatz, benötigt eine aktive Verbindung vom Gerät, kann die Batterie entladen, wenn sie nicht sinnvoll implementiert wird.
Diakon - Kann auf lange Sicht aufgrund der begrenzten Unterstützung durch die Community nicht gut sein.
Bearbeiten : Hinzugefügt am 25. November 2013
GCM - Google sagt ...
quelle
Android Cloud to Device Messaging Framework
Wichtig: C2DM wurde am 26. Juni 2012 offiziell abgelehnt. Dies bedeutet, dass C2DM keine neuen Benutzer und Kontingentanforderungen mehr akzeptiert. C2DM werden keine neuen Funktionen hinzugefügt. Apps, die C2DM verwenden, funktionieren jedoch weiterhin. Bestehende C2DM-Entwickler werden aufgefordert, auf die neue Version von C2DM mit dem Namen Google Cloud Messaging für Android (GCM) zu migrieren. Weitere Informationen finden Sie im Dokument zur Migration von C2DM zu GCM. Entwickler müssen GCM für Neuentwicklungen verwenden.
Bitte überprüfen Sie den folgenden Link:
http://developer.android.com/guide/google/gcm/index.html
quelle
Hier habe ich einige Schritte geschrieben, um RegID und Benachrichtigung von Grund auf neu zu erhalten
Das vollständige Tutorial finden Sie unter dem folgenden URL-Link
Code-Snip zum Abrufen der Registrierungs-ID (Geräte-Token für Push-Benachrichtigung).
Projekt für GCM konfigurieren
Aktualisieren Sie die AndroidManifest-Datei
Um GCM in unserem Projekt zu aktivieren, müssen wir einige Berechtigungen in unsere Manifestdatei einfügen. Gehen Sie zu AndroidManifest.xml und fügen Sie den folgenden Code hinzu: Berechtigung hinzufügen
GCM Broadcast Receiver-Deklaration hinzufügen
Fügen Sie die GCM Broadcast Receiver-Deklaration in Ihr Anwendungs-Tag ein
Fügen Sie die GCM-Servie-Deklaration hinzu
Registrierungs-ID abrufen (Geräte-Token für Push-Benachrichtigung)
Gehen Sie jetzt zu Ihrer Start- / Begrüßungsaktivität
Fügen Sie Konstanten und Klassenvariablen hinzu
Aktualisieren Sie die OnCreate- und OnResume-Methoden
Hinweis : Bitte speichern Sie REGISTRATION_KEY. Es ist wichtig, dass Sie eine PN-Nachricht an GCM senden. Sie auch, dass dies für alle Geräte eindeutig ist. Wenn Sie diese Option verwenden, sendet nur GCM eine Push-Benachrichtigung.
Push-Benachrichtigungen erhalten
GCM Broadcast Receiver Class hinzufügen
Da wir in unserer Manifest-Datei bereits "GcmBroadcastReceiver.java" deklariert haben, können Sie diesen Klassenaktualisierungsempfänger-Klassencode auf diese Weise erstellen
GCM-Serviceklasse hinzufügen
Da wir in unserer Manifest-Datei bereits "GcmBroadcastReceiver.java" deklariert haben, können Sie diesen Klassenaktualisierungsempfänger-Klassencode auf diese Weise erstellen
quelle
Es gibt eine neue Open-Source-Initiative zur Entwicklung einer Java-Bibliothek für Push-Benachrichtigungen auf Android basierend auf dem Meteor-Webserver. Sie können es im Deacon Project Blog nachlesen , wo Sie Links zu Meteor und dem GitHub-Repository des Projekts finden. Wir brauchen Entwickler, also bitte verbreiten Sie das Wort!
quelle
Sie können Xtify ( http://developer.xtify.com ) verwenden - sie haben einen Push-Benachrichtigungs-Webservice, der mit ihrem SDK funktioniert. Es ist kostenlos und hat bisher sehr gut für mich funktioniert.
quelle
oder....
quelle
Ich empfehle die Verwendung von GCM - Google Cloud Messaging für Android. Es ist kostenlos und sollte für einfache Zwecke sehr einfach sein.
Es ist jedoch erforderlich, einen Server auf der dritten Seite zu warten, um die Benachrichtigungen in Ihrem Namen zu senden. Wenn Sie vermeiden möchten, dass es einige sehr gute industrielle Lösungen für den Android-Push-Benachrichtigungsdienst gibt:
Diclaimer - Ich arbeite in PushApps und verwende deren Produkt seit über einem Jahr in meinen Anwendungen.
quelle
Ab dem 18.05.2016 ist Firebase Googles einheitliche Plattform für mobile Entwickler, einschließlich Push-Benachrichtigungen.
quelle
Ich fürchte, Sie haben beide möglichen Methoden gefunden. Zumindest anfangs wollte Google eine GChat-API implementieren, die Sie für eine Push / Pull-Implementierung verwenden konnten. Leider wurde diese Bibliothek von Android 1.0 geschnitten.
quelle
Ich weiß nicht, ob das noch nützlich ist. So etwas habe ich mit einer Java-Bibliothek bei erreicht http://www.pushlets.com/ erreicht.
Obwohl es in einem Dienst ausgeführt wird, wird Android nicht daran gehindert, es herunterzufahren und den Listener-Thread zu beenden.
quelle
Google C2DM wird jetzt abgeschrieben. Dafür müssen Sie den neuen Dienst GCM (Google Cloud Messaging) verwenden. Informationen zur Dokumentation finden Sie unter http://developer.android.com/guide/google/gcm/gs.html
quelle
C2DM: Ihre App-Benutzer müssen über das Google Mail-Konto verfügen.
MQTT: Wenn Ihre Verbindung 1024 erreicht hat, funktioniert sie nicht mehr, da das "Select Model" von Linux verwendet wird.
Es gibt einen kostenlosen Push-Service und eine API für Android. Sie können sie ausprobieren: http://push-notification.org
quelle
Kostenlose und einfache Methode:
Wenn Ihre Zielgruppe nicht groß ist (weniger als 1000) und Sie zunächst einen kostenlosen Service wünschen, ist Airbop der beste und bequemste.
Airbop-Website Sie verwendet den Google Cloud Messaging-Dienst über ihre API und bietet eine gute Leistung. Ich habe es für zwei meiner Projekte verwendet und es war einfach, es umzusetzen.
Services wie und Urbanship sind ausgezeichnet, bieten jedoch einen vollständigen Bereitstellungsstapel und nicht nur Push-Benachrichtigungen.
Wenn nur der Push-Service Ihr Ziel ist, funktioniert Airbop einwandfrei.
Ich habe Pushwoosh nicht verwendet , aber es ist auch eine gute Wahl. Es ermöglicht den kostenlosen Push auf 1.000.000 Geräte
quelle
Ich würde vorschlagen, sowohl SMS als auch HTTP zu verwenden. Wenn der Benutzer nicht angemeldet ist, senden Sie seinem Telefon eine SMS, um ihn zu benachrichtigen, dass eine Nachricht wartet.
So funktioniert dieser Ericsson Labs-Dienst: https://labs.ericsson.com/apis/mobile-java-push/
Wenn Sie dies selbst implementieren, ist es schwierig, die eingehende SMS zu löschen, ohne dass der Benutzer sie sieht. Oder vielleicht ist es in Ordnung, wenn sie es in Ihrem Fall sehen.
Sieht so aus: SMS mit BroadCastReceiver - Android löschen
Ja, das Schreiben von Code wie diesem kann gefährlich sein und Sie können möglicherweise das Leben einer Person ruinieren, da Ihre Anwendung eine SMS gelöscht hat, die sie nicht haben sollte.
quelle
Sie können Google Cloud Messaging oder GCM verwenden . Es ist kostenlos und einfach zu bedienen. Sie können auch Push-Server von Drittanbietern wie PushWoosh verwenden , um mehr Flexibilität zu erhalten
quelle
Es gibt viele Server von Drittanbietern wie Urban Airship , Xtify, Mainline , ... die das Senden nicht nur auf Android, sondern auch auf iOS, Windows Phone ... ermöglichen.
quelle
Firebase Cloud Messaging (FCM) ist die neue Version von GCM. FCM ist eine plattformübergreifende Messaging-Lösung, mit der Sie Nachrichten sicher und kostenlos senden können. Vererbt die zentrale Infrastruktur von GCM, um Nachrichten zuverlässig auf Android, iOS, Web (Javascript), Unity und C ++ zu übermitteln.
Bis zum 10. April 2018 hat Google GCM abgelehnt. Die GCM-Server- und Client-APIs sind veraltet und werden am 11. April 2019 entfernt. Google empfiehlt die Migration von GCM-Anwendungen auf Firebase Cloud Messaging (FCM), das die zuverlässige und skalierbare GCM-Infrastruktur erbt.
Ressource
quelle
Sie können Pusher verwenden
Es handelt sich um einen gehosteten Dienst, mit dem Web- und Mobilanwendungen ganz einfach Echtzeitdaten und -funktionen hinzufügen können.
Pusher bietet Bibliotheken zur Integration in alle wichtigen Laufzeiten und Frameworks.
PHP, Ruby, Python, Java, .NET, Go and Node
auf dem ServerJavaScript, Objective-C (iOS) and Java (Android)
auf dem Client.quelle