Nachricht von Server an Handy senden

  • Antworten:32
  • Bentwortet
Gerhard
  • Forum-Beiträge: 36

05.06.2020, 17:02:40 via Website

Hallo zusammen,
meine App kommuniziert mit einem WebService: Das Handy sendet einen HTTP Request an den Server, der schickt als Response Daten zurück, die auf dem Handy angezeigt werden; das klappt soweit.

Es gibt Situationen, in denen sich ein auf meinem Handy angezeigter Wert durch eine Aktion eines anderen Users ändert. Ich könnte einen Aktualisieren-Button einfügen, der einen neuen HTTP-Request an den Server schickt, die App empfängt die Response und zeigt den aktuellen Wert an; der Wunsch ist aber, den geänderten Wert automatisch auf mein Handy zu kriegen, ohne daß ich einen Aktualisieren-Button klicken muß.

Ich bin auf das Stichwort Push-Notification / Firebase gestoßen, werde aber aus allen gefundenen Artikeln nicht ganz schlau: Ist das das richtige für mich? Meistens wird als Usecase für Firebase beschrieben, daß eine Message angezeigt wird, wenn die App nicht geöffnet ist. In dem Fall interessiert mich die Nachricht aber nicht.

Sind Push-Notifications die Nachrichten, die kommen, wenn man vom oberen Display-Rand nach unten wischt? Ich möchte diese Messages eigentlich überhaupt nicht als einzeln sichtbare Messages / AlertDialoge / Toast oder ähnliches.

Sondern ich möchte, daß der Server bei Änderung des Wertes in irgendeiner Form eine Benachrichtigung an das Handy schickt, die in der App so ähnlich auswertbar ist wie eine HTTP-Response.

Ich könnte ein Konzept implementieren, mit dem die App dem Server mitteilt, daß sie an diesem Wert interessiert ist, sodaß der Server die Änderung nur an die betroffenen Handys schicken muß.

Macht man so etwas mit Firebase? Oder gibt es ein besseres Stichwort?

Viele Grüße
Gerhard

Kommentieren
Beste Antwort
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

05.06.2020, 17:45:00 via Website

Hallo Gerhard,

ja Firebase Cloud Messaging (FCM) ist da schon der richtige Ansatz. (Firebase bietet viele Services an, FCM ist nur einer davon.)
Die Daten kannst du in einem Broadcastreceiver entgegennehmen und dann weiter an deine Activity schicken.
Eine User-Notification ist dafür nicht notwenig.
Beachte aber dabei die Firebase Limits: https://firebase.google.com/docs/cloud-messaging/concept-options

Ansonsten überträgst du die Daten am besten im Json Format, also wie jede gänige API. Das Format kannst du selber definieren und bleibt sehr Flexibel. Normale Strings gehen natürlich auch, nur ist das ganze dann nicht so komfortabel.
Auf Serverseite musst du dann GeräteIds von registrierten Geräten Speichern können. Über zusätzliche Logik kannst du dann auf festlegen, welche Geräte die Notification nun bekommen sollen.

— geändert am 05.06.2020, 17:45:49

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Gerhard
Kommentieren
Gerhard
  • Forum-Beiträge: 36

16.07.2020, 14:10:21 via Website

Hallo,

danke für die Antwort; aber jetzt muß ich nochmal rückfragen: Die Diskussion im Projekt hat ergeben, daß wir hierfür keinen Google-Service wollen (wegen Datenschutz).

Firebase ist ja ein riesiges Tool, von dem wir nur einen kleinen Teil genutzt hätten. Gibt es vielleicht außer Google noch einen ähnlichen Service, der das Verschicken von Notifications von einem Webservice an auszuwählende Geräte ermöglicht, der aber nach deutschen Maßstäben datenschutz-konform ist?

Viele Grüße
Gerhard

Hilfreich?
Kommentieren
Gerhard
  • Forum-Beiträge: 36

17.07.2020, 10:36:41 via Website

Hallo,

das Stichwort Push Notification habe ich auch schon gefunden. Aber entweder verstehe ich es falsch, oder es passt nicht. Bei Push Notification lese ich immer, ein Message-Text poppt auf dem Display auf oder erscheint im Browser oder erscheint, wenn du vom oberen Display-Rand nach unten wischst.

Was ich möchte, ist folgendes: Ich schreibe eine App und einen zugehörigen Webservice, die miteinander kommunizieren. Wenn ein User die App geöffnet hat und einen Wert aus der Database anzeigt, und sich dieser Wert serverseitig ändert (durch eine Aktion eines anderen Users), dann soll der Webservice eine Information an die App des betroffenen Users schicken, die diese empfängt, interpretiert und den angezeigten Wert still und leise aktualisiert. Wenn der User die App in dem Moment nicht offen hat, läuft die Message ins Leere, weil die App sowieso den aktuellen Wert von Server holt, wenn sie gestartet wird.

Ich stelle mir vor, daß ich im Server einen Send-Irgendwas-Aufruf mit der Identifikation und dem zu sendenden Inhalt schreiben muß, und in der App eine Methode onReceiveIrgendwas, die dann aufgerufen wird und die gesendeten Daten (String oder Json-Struktur o.ä.) empfängt und auswertet.

Oder gibt es eine Methode, mit der man Push Notifications in der App empfangen kann? Wenn die Notification dann zusätzlich zu der gewünschten Auswertung in der App auch noch in der Notification-Liste am oberen Display-Rand erscheint, wäre nicht so schön, aber akzeptabel, wenn es nicht anders geht. Aber leiber wäre mir, wenn die Message nirgends anders herauskommt als in der Aktualisierung des angezeigten Wertes in der App.

Viele Grüße
Gerhard

Hilfreich?
Kommentieren
Rafael K.
  • Forum-Beiträge: 2.359

17.07.2020, 10:50:05 via Website

Also eigentlich ist Firebase genau das was man dafür nutzt.
Entweder machst du das mit Push Nachrichten über FCM, oder über die Firebase Realtime Database.
Die sendet jede Änderung der Daten in Echtzeit in deine App.

Wenn du das WIRKLICH selbst machen willst - wovon ich abraten würde, weil es eine "world of pain" ist - wären WebSockets die Technologie der Wahl.

Hilfreich?
Gerhard
Kommentieren
Gerhard
  • Forum-Beiträge: 36

17.07.2020, 11:46:28 via Website

Hallo Rafael,

das Feature FCM mag exakt das sein, was ich mir vorstelle. Aber wenn man sich die Nutzungsbedingungen von Firebase anschaut und die Daten, die dazu erfasst werden, stehen unserem Projektmanagement und mir die Haare zu Berge. Nein, einen Google Server wollen wir da nicht einbinden.

WebSockets ist ein neues Stichwort. Das schaue ich mir mal an. Danke, auch für deine Warnung; dann kann ich das Projektmanagement schon mal darauf vorbereiten, was uns bevorsteht :-).

Viele Grüße
Gerhard

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.07.2020, 13:54:02 via App

Mit WebSockets musst du aber ständig einen Service im Hintergrund laufen lassen und darauf achten das das System diesen nicht abschießt. Dann kommt eine Akkubelastung hinzu etc...
Je nachdem wie häufig du Daten haben willst könntest du auch alle x Minuten pollen. Auch nicht schön aber vlt besser als ein eigener Service im Hintergrund.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
GerhardJokel
Kommentieren
Jokel
  • Forum-Beiträge: 1.537

17.07.2020, 15:47:12 via Website

Hallo im übrigen ist es auch nicht unbedingt notwendig die push Nachrichten auf dem Display oder Status Zeile anzuzeigen. Der resiver kann auch ohne Anzeige arbeiten.

FCM läuft sowieso immer im tief im System eigentlich schon im Kernel.

Ist also immer vorhanden. Du musst ja auch fast keine Daten mit FCM übertragen. Du willst ja dem User nur mitteilen das es neue Daten gibt die die app dann selber von deinem Server abholt.

— geändert am 17.07.2020, 15:58:03

Hilfreich?
Kommentieren
Gerhard
  • Forum-Beiträge: 36

17.07.2020, 16:42:07 via Website

Didumm. Mit Service meinst du einen Service auf dem Handy? Der Webservice auf dem zentralen Server läuft ja sowieso. Hast du (grobe) Zahlen zur zu erwartenden Akkubelastung?

Alle 10 Sekunden pollen hatte ich auch schon vorgeschlagen; der Projektmanager wünschte sich eine Aktualisierung sofort, nicht erst nach 10 Sekunden. Außerdem würde alle 10 Sekunden pollen (oder öfter) wieder auf das Datenvolumen gehen und diejenigen belasten, die einen Tarif mit begrenztem Datenvolumen haben.

Als weitere Alternative schoß mir noch die Idee durch den Kopf, eine SMS an das betroffene Handy zu schicken. Aber wenn die dann nur in den SMS-App angezeigt wird, nutzt es auch nichts. Gibt es eine Möglichkeit, in der App einen EventHandler zu schreiben, er eine SMS empfängt?

Hilfreich?
Kommentieren
Gerhard
  • Forum-Beiträge: 36

17.07.2020, 16:52:59 via Website

Hallo Jokel,

das Problem bei FCM ist nicht die einzelne Nachricht, sondern der Datenschutz und das Registrieren auf einem Google-Server. Wer weiß schon, was Google alles ermittelt, speichert, auswertet und an wen auch immer weitergibt?

Reveiver ohne Anzeige klingt so, als ob ich Push Notifications mit einem EventHandler in der App empfangen könnte? Und kann der Webservice eine Push Notification auch an ein einzelnes Handy schicken? Bei Artikeln über Push Notifications sind meistens Werbe-Aktionen beschrieben, die an alle Welt gesendet werden. In meinem Fall ist von einer Notification ein einzelner User betroffen, oder wenn es hoch kommt, vielleicht fünf. Ich könnte natürlich einen Filter in dem EventHandler einbauen, der eine Notification verwirft, wenn sie den User nicht betrifft. Aber lieber würde ich die Notifications gezielt nur an die betroffenen User schicken.

Viele Grüße
Gerhard

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.07.2020, 20:46:03 via App

Bei FCM kannst du einzelne User gezielt ansprechen und Nachrichten an einzelne Registration Id schicken.
das ist hier alles implementiert.
Die IDs kannst du auch nur bei dir Speichern, diese kennt dann Google über den Account.
und wenn der User einen Google Account hat, hat er den Google Datenschutzbestimmungen sowieso zugestimmt.

Und ja mit Service meine ich einen Android Service welcher im Hintergrund laufen muss, was sowas an Akku kostet ist nicht pauschal zu sagen, das kommt darauf an, was du machst und welche Technik du verwendest.
Somit nicht vorher zu sehen.

Fyi:
https://steelkiwi.com/blog/push-notifications-services-how-to-choose/

— geändert am 17.07.2020, 20:50:13

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Gerhard
Kommentieren
Rafael K.
  • Forum-Beiträge: 2.359

18.07.2020, 18:49:34 via Website

Als weitere Alternative schoß mir noch die Idee durch den Kopf, eine
SMS an das betroffene Handy zu schicken. Aber wenn die dann nur in den
SMS-App angezeigt wird, nutzt es auch nichts. Gibt es eine
Möglichkeit, in der App einen EventHandler zu schreiben, er eine SMS
empfängt?

Ja das geht. WhatsApp macht ja genau das bei der Anmeldung.

Hilfreich?
Pascal P.
Kommentieren
Jokel
  • Forum-Beiträge: 1.537

19.07.2020, 11:26:41 via Website

Hallo ja das über SMS zu lösen ist schon möglich .
Nur ist es recht langsam und der User bekommt auch die SMS angezeigt. Außerdem brauchst du auch die Tel. Nummer des Handys um die SMS schicken zu können. Gebühren fallen auch für eine SMS an.

Ich würde das das FCM Data Message benutzen.
https://firebase.google.com/docs/cloud-messaging/concept-options

und wenn du nur eine Info schickst das neue Daten auf dem Server sind. Sollte es auch keine Probleme mit dem Datenschutz geben. Denn du schickst ja nur der App eine Info das sie die neuen Daten mit deinen Authentifikation bei deinen Server abholen kann. Wenn die App nicht läuft brauchst du auch nicht darauf reagieren.
Startet die App holst du erstmals die aktuellen Daten vom Server. Bist also auch wieder aktuell.

https://www.kuketz-blog.de/vorsicht-android-entwickler-beim-umstieg-von-gcm-auf-fcm-ist-tracking-aktiviert/

— geändert am 19.07.2020, 15:03:09

Hilfreich?
Gerhard
Kommentieren
Jokel
  • Forum-Beiträge: 1.537

20.07.2020, 08:44:46 via Website

Hallo zu dem Thema Service. Wenn ich dich richtig verstehe wird der ja nur solange laufen wie deine App im fodergrund ist. Geht die app in den hindergrund könntest du ihn beenden.
Beim wider sichtbar werden der App startest du ihn neu und holst gleich die neusten daten.

Somit sollte der Akku auch nicht so stark belastet werden. Wenn die app nicht gestartet ist brauchst du doch auch nicht auf neu daten zu reagieren.

Oder wie ist sonst das handling der App.

Hilfreich?
Gerhard
Kommentieren
Rafael K.
  • Forum-Beiträge: 2.359

20.07.2020, 08:56:46 via Website

Ich glaub das Problem mit dem Datenschutz ist halt eher, dass FCM nur funktioniert, wenn es die Geräte-ID in Verbindung mit dem Push-Token serverseitig speichert. Das sind personenbezogene Daten.
Diese Speicherung geschieht in den USA nach den dortigen (lascheren) Datenschutz-Standards.
Um die gab es ja jetzt auch kürzlich wieder Ärger, weil der EUGH geurteilt hat, dass bei Übertragung von Daten aus der EU in die USA der Datenschutz nicht leiden darf.

Kann ich schon verstehen, dass man das nicht unbedingt toll findet, aber mann muss auch abwägen was der Aufwand wäre es anders zu machen.
Wenn man bedenkt, dass sogar deutsche Banking-Apps FCM nutzen, würde ich da aber wirklich ungern das Rad neu erfinden. Vor allem nehme ich an, dass es bei der App zumindest nicht um Daten geht, die sensibler sind, als die im Online-Banking.

— geändert am 20.07.2020, 08:57:27

Hilfreich?
GerhardJokel
Kommentieren
Jokel
  • Forum-Beiträge: 1.537

20.07.2020, 10:44:26 via Website

FCM ist auf jeden Fall der akku schonennste Nachrichten Service. Denn der läuft immer und auf Kernel ebne.

@Rafael K. welche Nachrichten Dienste kennst du noch für Android.?

WhatsApp, Email Push nutzen meiner Meinung nach auch FCM.

Zum Speichern in der USA, es war doch so das du bei firebase am Anfang beim Erstellen des Projektes gefragt wirst wo auf welchen Server du das Projekt haben willst.

— geändert am 20.07.2020, 11:03:11

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

20.07.2020, 11:09:11 via App

Ich glaube WA nützt zusätzlich noch XMPP Push Technologien um auch auf Geräten ohne Google zu laufen. aktuelle Huawei Geräte z.b
E-Mail ist es ganz vom Client abhängig, die meisten 3rd Party Mail Apps Pollen alle x Minuten, wirkliches Push können nur die Apps der Provider direkt machen ansonsten müssten deine E-Mail Zugangsdaten an Server der 3rd Party App Betreiber weitergegeben werden.

SMS dürfte gehen und sollte zumindest in Zeiten von Wifi-Calls etc. auch überall mit WLAN oder Mobilfunk empfangbar sein. Kosten dürften mit einer passenden Flat mit unlimited SMS nicht sehr hoch sein.
Allerdings muss der Nutzer sich dann mit seiner Telefonnummer registrieren, das finde ich nur für Push Nachrichten etwas blöd.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Gerhard
Kommentieren
Gerhard
  • Forum-Beiträge: 36

20.07.2020, 11:12:56 via Website

Hallo zusammen,

das Problem bei FCM ist nicht der Inhalt der einzelnen Nachricht. Nach meiner Einschätzung ist das Problem die Datenkrake Google. Um FCM zu nutzen, muß der User sich bei Google für den Dienst registrieren. Und dann verknüpft Google, so fürchte ich, die Nachricht mit den Ortungsdaten und anderen Gigabytes über den User, und daraus entsteht schon eine komplexere Aussage (oder eine Fehlinterpretation, die eher noch kritischer ist).

Wenn Google oder andere Firmern in den Datenschutz-Erklärungen schreiben "Wir verwenden die Daten BEISPIELSWEISE, um zu ...", werden in dieser Liste doch nur die völlig unkritischen Verwendungszwecke stehen, denen jeder zustimmt; und was Google sonst mit den Daten macht, bleibt Spekulation.

Vielen Dank für alle eure Ideen und Informationen; wir werden sie in unserer Projektrunde mal diskutieren.
Viele Grüße
Gerhard

Hilfreich?
Kommentieren
Rafael K.
  • Forum-Beiträge: 2.359

20.07.2020, 11:24:23 via Website

@Rafael K. welche Nachrichten Dienste kennst du noch für Android.?

Wie gesagt keine :-D
The next best thing wären halt WebSockets, aber die sind nicht so tief im System verankert und können z.B. das Geräte nicht aus dem Sleep aufwecken.

Und dann verknüpft Google, so fürchte ich, die Nachricht mit den
Ortungsdaten und anderen Gigabytes über den User, und daraus entsteht
schon eine komplexere Aussage (oder eine Fehlinterpretation, die eher
noch kritischer ist).

Das kann man halt so oder so sehen.
Google kommuniziert ohnehin STÄNDIG mit JEDEM Android Phone.
Also die Pushes deiner App braucht Google ganz sicher nicht, um Bewegungsprofile von Geräten anzulegen :-)
Wenn Deine App also nicht weitere Profile über den Nutzer anlegt, wird durch deine App zumindest der Datenschutz des Nutzers nicht schlechter als er eh schon ist.
Wenn es also nicht grade darum geht eine App am Play Store vorbei auszuliefern auf Geräte, die nicht mit einem Google Account eingeloggt sind, wirst Du immer auf Geräte abzielen, die schon im Würgegriff von Google hängen.
Dann kann es Dir auch egal sein FCM die Daten nochmal zu geben, die Google eh schon hat :-)

Hilfreich?
Gerhard, Jokel und 1 mehr GerhardJokelPascal P.
Kommentieren
Jokel
  • Forum-Beiträge: 1.537

20.07.2020, 11:51:33 via Website

Um FCM zu nutzen, muß der User sich bei Google für den Dienst registrieren.

Stimmt so nicht ganz. Das macht deine App wenn du sie bei firebase eingetragen hast. Dann bekommt deine app eine id. Und der User bekommt wenn ein token automatisch.
Das überwachen analytics kannst du abschalten. Brauchst auch nicht die support library im gradle einbinden. Dann gibt es kein analytic.

Ein eigenes pollen wäre dann wohl das beste. Brauchst du ja auch nur machen wenn die app im Vordergrund ist. Nachrichten willst du ja nicht nur die app actuell halten. Wenn der User damit arbeitet.

Auch beim pollen müssen keine grossen Daten fließen. Netzlast wird nicht so riesig sein.

Ein aufwecken aus dem Schlaf ist bei seiner App eigentlich auch nicht notwendig.
Somit reicht ein einfacher services und WebSockets. Der service kann ja mit beenden oder in den hinderund treten auch beenden werden. Wenn der User wider arbeitet hollt die app als erstes die aktuellen Daten. Und anschließend pollt der Service ob es neue Daten gibt.

— geändert am 20.07.2020, 16:10:50

Hilfreich?
Kommentieren
Gerhard
  • Forum-Beiträge: 36

20.07.2020, 20:30:45 via Website

Hallo Rafael,

das ist ja krass. Ich denke, daß wir in der Datenschutz-Erklärung unseres Projekts offenlegen würden, wenn wir FCM verwenden (und nicht nur die drei Buchstaben, sondern einen ganzen Satz), und ich könnte mir vorstellen, daß der eine oder andere Interessent die Teilnahme an unserem Projekt ablehnt, wenn er das liest. Es bleibt natürlich eine gewisse Hilflosigkeit für denjenigen, wenn er begreift, daß er trotzdem im Würgegriff von Google ist, wie du es formulierst.

Viele Grüße
Gerhard

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

20.07.2020, 20:53:30 via Website

Wenn das wirklich so ist, dann machst du 2 Builds/ Versionen der App eine mit und eine ohne FCM (oder deaktiviert).
Dann kann das kein Kriterium mehr sein. Du hast halt nur einen kleinen Wenig mehr aufwand und in der anderen Version keine Push Nachrichten, dafür polling o.ä.
Dann kann sich jeder Frei entscheiden was er nutzen möchte.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Gerhard
  • Forum-Beiträge: 36

21.07.2020, 09:42:04 via Website

Mir schoß auch schon der Gedanke durch den Kopf, per User administrierbar zu machen, wie der Update kommt (mehr als Scherz):
- über FCM
- über WebSocket
- per SMS
- per Polling alle x Sekunden (einstellbar)
- über einen Aktualisieren-Button, den der User selbst klicken muß.

Aber zwei Varianten wären zu diskutieren.

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

21.07.2020, 09:52:39 via Website

Alle varianten zu Implementieren scheint mir zu aufwändig.
Ich würde maximal 2 davon wählen und falls es für User wirklich abschreckend ist, dass das FCM Modul enthalten aber deaktivierbar ist, dann kannst du immernoch auf 2 Versionen umsteigen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.537

21.07.2020, 11:11:46 via Website

Hallo
bei deinen Versionen stellt sich mir die Frage nach dem Unterschied
Websoket und Polling.
Ein Polling würde ich auch über Sockets machen. Nicht http.

Zum Tehma der User soll selbst in der App entscheiden ob er FCM nutzt oder nicht. Da musst du die app auch wenn der User es nicht nutzen möchte bei Firebase registrieren. Und die support lib einbinden. Dein Datenschutz (deine Bedenken zu FCM) ist somit schon dahin. Auch wenn der User in der App nein sagt.

Deshalb zwei Varianten. Mit FCM und ohne.

— geändert am 21.07.2020, 11:42:20

Hilfreich?
Kommentieren
Rafael K.
  • Forum-Beiträge: 2.359

21.07.2020, 12:53:27 via Website

Zum Tehma der User soll selbst in der App entscheiden ob er FCM nutzt
oder nicht. Da musst du die app auch wenn der User es nicht nutzen
möchte bei Firebase registrieren. Und die support lib einbinden. Dein
Datenschutz (deine Bedenken zu FCM) ist somit schon dahin. Auch wenn
der User in der App nein sagt.

Man kann Firebase in das Projekt einbinden und den automatischen Start im App Manifest deaktivieren.
Und zwar sogar einzeln für Messaging und Analytics.
Dann kommuniziert die LIB solange nicht mit Google Servern, bis man das programmatisch anstößt.
Das habe ich in einem Projekt wirklich mal mit einem HTTP Proxy debugged. Die Lib tut dann wirklich nichts.

Außerdem könnte man auch mit Flavors arbeiten und die Dependency+Code für Firebase nur in einem bestimmten Flavor einbinden. Dann hätte man nichtmal die LIB im resultierenden APK drin.

Und grundsätzlich würde ich das Ganze jetzt einfach nicht over-engineeren.
Ich weiß ja nicht was für eine Zielgruppe ihr da ansprechen wollt, aber ich kenne niemanden, der sich z.B. um die Sicherheit seiner Daten bei der Push-TAN App seiner Bank Gedanken macht.
Die nutzen auch FCM.

— geändert am 21.07.2020, 13:00:46

Hilfreich?
JokelPascal P.
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

21.07.2020, 15:14:40 via Website

Außerdem ist ja FCM auch nur eine Benachrichtigung:

Mit dem Inhalt:
"Hey ich hab eine neue super geheime Nachricht für dich. Du kannst diese bei mir abrufen".
Und dann dann der Client über eine verschlüsselte Verbindung unabhängig von Google die Daten laden.
Ich wäre auch dafür entweder FCM zu nutzen oder es ganz weg zu lassen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Jokel
Kommentieren
Jokel
  • Forum-Beiträge: 1.537

21.07.2020, 15:51:32 via Website

Das mag alles richtig sein nur hat er ja so eine immense Angst vor FCM. Das er dem wohl doch nicht trauen sollte. Die app ist trotzdem bei firebase registriert.

Bei der Angst die er vor FCM hat sollte er doch zwei Versionen machen.

Ob das was Rafael sagt für seine Chefs reicht. ;)

Auch ich bin der Meinung das er zu viel bedenken hat FCM zubenutzen. Da werden wohl seine Chefs zu wenig informiert sein.

Auch wenn man FCM abschalten kann. Müsste er es in der Datenschutz Erklärung angeben da es ja eingeschaltet werden kann.

Und genau diese Angabe wollen sich seine Chefs wohl sparen.

— geändert am 21.07.2020, 16:01:48

Hilfreich?
Pascal P.
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

21.07.2020, 16:05:05 via Website

Richtig @Jokel, dann muss man sich eben auch das Feature sparen oder Zeit investieren ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Gelöschter Account
  • Forum-Beiträge: 21.034

22.07.2020, 00:02:23 via Website

Schau Dir mal Conversations und Signal an. Für beides liegt der Quellcode offen.

Conversations nutzt zumindest in der F-Droid-Version kein FCM. Signal hat einen Fallback für Systeme ohne Google Play Services. Die Nachrichten kommen bei beiden sofort an.

Hilfreich?
Kommentieren
Gerhard
  • Forum-Beiträge: 36

22.07.2020, 11:52:36 via Website

Hallo Aries,

"kein FCM" klingt gut. Meinst du https://f-droid.org/de/packages/eu.siacs.conversations/ und https://signal.org/de/? Ich bin bei beiden nicht ganz schlau geworden: Bei beiden ist die Rede davon, daß man eine App installieren kann. D.h. ein Server sendet eine Push Message ohne FCM und die Conversations-App bzw. Signal-App zeigt sie an?

Das ist nicht mein Usecase. Bei mir geht es um eine eigene App, die Daten eines Users anzeigt; wenn sich diese Daten serverseitig ändern, soll die App dies in der Anzeige ändern, ohne daß der User einen HTTP-Request dazu schickt.

Viele Grüße
Gerhard

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

22.07.2020, 12:08:17 via Website

Ich glaube Aries meint, dass du dir anschauen kannst, wie die beiden Apps das Technisch lösen.
D.h. die Quellcode Repos durchschauen und sehen ob du da Code für Push findest.

Signal könnte z.b. WebSockets nutzen:
https://github.com/signalapp/Signal-Android/blob/master/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/websocket/WebSocketConnection.java

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren