Notifikationen

  • 30 Antworten
  • Letztes Antwortdatum
Die Google API scheint mir wie eine Bibel...
Ich les mich mal ein, in dieses Google Cloud Messaging, kurz GCM :sneaky:

Ich versteh nur nicht, warum ich in einem privaten Netzwerk, einen solchen Dienst verwenden sollte
 
Flocke123 schrieb:
Ich versteh nur nicht, warum ich in einem privaten Netzwerk, einen solchen Dienst verwenden sollte

Weil das was du willst auf dem Gerät eh schon läuft (CGM). Und wenn du jetzt das selbe nochmal programierst dann laufen da zwei Sachen die im Prinzip das selbe machen.
Und wenn das jede App so macht dann hält der Akku keine 30 Minuten ;-)

cu
 
Und wenn ich einen änhlichen Dienst auch für iOS programmieren wollen würde (Keine Ahnung welcher Teufel mich in dieser Zukunft geritten hat) weil die App so toll funktioniert, und es nicht nur Android Smartphones auf dieser Welt gibt - Was mach ich dann? Glaube nicht das die Google API und GCM auch auf einem Apfel oder im Fenster läuft.
 
Der Apfel hat ja wohl nen eigenen push Service. Ist aber Sache deiner Server Komponente.

Wobei beim Apfel die Nachricht selber über die Cloud muss. AFAIK geht das bei denen gar nicht anderst. Da können wohl Apps im Hintergrund gar nix machen.

Wobei ich mich frage wie die Mail Apps das denn dort machen?


Aber das Thema sollte sich ja ergooglen lassen.

cu
 
Also GCM kommt für mich nicht in Frage.
Und das aus einem einfachen Grund, unsere Server haben in der Regel keine Verbindung zum Internet.

Ich werde ein paar test Projekte erstellen und, falls Interesse besteht, die Ergebnisse mit den Skeptikern teilen, die kein Vertrauen in den Akku eines Smartphones haben! :)

Grüße Flo
 
Naja das Problem ist, das Smartphone geht normalerweise nach einer Zeit in den Deep Sleep.
Wenn du nun alle paar sekunden vom Handy aus einen Server abfragst geht das Telefon nie in den Deep Sleep und das verbraucht wirklich dauernd Strom und das nicht so wenig.

Wenn du jetzt einen Service laufen lässt, der einen Socket aufhält dürfte der deep sleep auch wegfallen.

Also ich hatte mal eine Amok laufende App die genau den deep sleep verhindert hatte, mein Telefon hat ca ~20% Akku pro Stunde verbraucht. (Ich weiß nicht genau was die App da noch so gemacht hat).
Unterschätz das nicht.

Wenn du aber die Telefone sowieso im lokalen WiFi hast, dann haben die ja kein Internetzugang.
Evtl wäre da ein sauber implentierter Polling Ansatz zu verkraften.
Denn vom Grundprinzip her macht das Google Push auch nichts anderes:
Push Notification - Kammerath Network

Wenn du es also gut umsetzt z.B. per Alarmmanager und diesen nicht zu oft aufrufst könnte das in deinem Szenario doch eine brauchbare Alternative sein.

Wenn du nämlich sowieso kein Internet hast, dann ruft google ja auch nicht die daten ab, somit kannst du stattdessen deine "Push" logik laufen lassen.
 
Vielen Dank, wie gesagt, ich werde ein paar Szenarien proggen und euch es wissen lassen.

GCM ist meiner Meinung nach falsch umgesetzt. Es läuft doch ein Dienst auf dem lokalen Gerät. Warum kann ich nun nicht diese funktionaltiät auch aus anderen Programmen nutzen?
Vom Prinzip kann es doch nicht viel anders als ein
Code:
serverSocket.accept();
sein :confused2:

Gruß Flo
 
Ich glaube du stellst dir die ganze Thematik viel zu einfach vor ;)
Aber das wirst du schon noch feststellen XD

lg. Dagobert
 
Flocke123 schrieb:
Warum kann ich nun nicht diese funktionaltiät auch aus anderen Programmen nutzen?

Kannst du doch. Allerdings nur über den Google Server. Gehört immerhin zu den Google Apps und nicht zum Android System.


Und würde man es erlauben das die Entwickler den Code für den eigenen push Service nutzen, dann würden sie es auch tun. Und dann hätten die Nutzer wieder das Problem das sie da 20 push Services am laufen haben ;-)


Du hast hier ja auch nen Sonderfall damit das der Kram nicht am Internet hängt. Ist ja heutzutage eher unüblich.

cu
 
Zumal du wirklich mit GCM nur ein simples 1/0/1/1/0/0/0/0/1 senden kannst.
Somit weiß überhaupt keiner was damit gemeint ist. Deine App würde dann das einfach auslesen und entsprechend interpretieren.

Wobei, ohne Internet :)

Gruß
 
Flocke123 schrieb:
Vielen Dank, wie gesagt, ich werde ein paar Szenarien proggen und euch es wissen lassen.

GCM ist meiner Meinung nach falsch umgesetzt. Es läuft doch ein Dienst auf dem lokalen Gerät. Warum kann ich nun nicht diese funktionaltiät auch aus anderen Programmen nutzen?
Vom Prinzip kann es doch nicht viel anders als ein
Code:
serverSocket.accept();
sein :confused2:

Gruß Flo

Naja erst mal gehe ich davon aus, dass Google sich da schon ausgiebig gedanken gemacht hat ;)

Und ja es läuft ein Service, dieser ruft regelmäßig den Google Server auf um zu Fragen ob "Push"-Benachrichtigungen vorhanden sind.

Google hat sich aber sehr sehr viel Gedanken darum gemacht wann genau dieser abruf passiert um möglichst selten das Gerät aufzuwecken.
Wenn das Gerät z.B. sowieso an ist (z.B. wenn du nur kurz die Uhr anschaust) kann man schnell noch die Nachrichten abrufen.

Zu einem Problem wird es vorallem dann, wenn nun jede App selbst sowas implentieren würde.
Selbst wenn man das auf 1 mal pro Minute beschränkt (man will ja noch relativ schnell die nachrichten bekommen).

Wenn du jetzt 6 Apps hast die das selbstständig machen bist du im zweifel dabei alle 10 Sekunden eine Abfrage rauszuschicken.

Deswegen sollte man im Normalfall niemals auf die Idee kommen sowas selbst zu basteln.
Dein Szenario ist allerdings kein Normalfall, daher kann das in deinem Fall ok und richtig sein sowas selbst zu bauen.

Wenn du z.B. den Alarmmanger nutzt hat der mittlerweile eine exakte und eine inexakte Methode um etwas zeitgestauert aufzurufen.
Die inexakte methode läuft nicht auf die Sekunde genau, sondern wartet unter Umständen bis das Telefon sowieso an ist.

Je nachdem wie zeitkritisch deine Benachrichtungen sind reicht das evtl auch schon aus.

Ohne Internet (Auf dem Telefon UND auf dem Server) ist das natürlich nicht möglich.

Wenn man ganz verrückt ist, könnte man in seinem privaten Netzwerk natürlich auch einen eigenen GCM Service nachbauen. lokal könnte man die Adresse des GCM-Server ja auf einen lokalen Server umbiegen.
Dann könnte man wieder die ganz normale GCM Services nutzen.
Allerdings dürfte das in den meisten Fällen ein Overkill sein ;)
 
Zurück
Oben Unten