Auf löschen der eigenen App reagieren?

  • Antworten:6
Philip M.
  • Forum-Beiträge: 90

21.02.2012, 12:47:19 via Website

Also mir hat sich heute folgendes Problem unterbreitet... ich leite eine Geräte ID und eine E-Mail an einen Server, welcher nun in vorher eingestellten Intervallen E-Mails rausschickt. Diese kann man auch wieder de-registrieren indem ich eine ähnliche Anfrage nochmal an den Server stelle. Anhand der ID kann dann natürlich auch erkannt werden welche Nachricht zu welchem Nutzer gehört.

Problem ist nun, wenn ich die App deinstalliere, wird der Nutzer weiterhin Nachrichten bekommen. Auch wenn er die App noch einmal installiert wird er es nicht mehr de-registrieren können, da die Daten in einem Profil in einer Datenbank gespeichert waren, welche mit der App natürlich gelöscht worden sind. Aber ganz egal, man kann davon nicht ausgehen das der Nutzer die App dafür wieder installieren würde bzw. er darauf kommen würde.

Gibt es eine Möglichkeit hier auf die Deinstallation der App zu reagieren um ein paar Registrierungen wieder vom Server zu entfernen? Es muss doch eine Möglichkeit geben da die Leute welche C2DM nutzen doch vor selbigen Problemen stünden, oder etwa nicht? Bisher hatte ich nichts gefunden und hoffe das ihr mir hier weiter helfen könnt. :>

Vielen Dank an alle die sich mit meinem Problem beschäftigen (:

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

21.02.2012, 12:51:00 via Website

Wüsste nicht, das es für sowas einen Call-Back gibt.
Das würde z.B. Tür und Tor dafür öffnen Schadsoftware zu schreiben, die sich beim Löschen wieder neu installiert.

Mach es doch so, dass die App einmal pro Tag/Woche einen "ping" an deine Datenbank sendet und wenn ein Gerät sich eine bestimmte Zeit nicht meldet, der Eintrag deaktiviert wird bis sich das Gerät wieder meldet.

Antworten
Florian B.
  • Forum-Beiträge: 284

21.02.2012, 13:32:32 via Website

Philip M.

Gibt es eine Möglichkeit hier auf die Deinstallation der App zu reagieren um ein paar Registrierungen wieder vom Server zu entfernen? Es muss doch eine Möglichkeit geben da die Leute welche C2DM nutzen doch vor selbigen Problemen stünden, oder etwa nicht? Bisher hatte ich nichts gefunden und hoffe das ihr mir hier weiter helfen könnt. :>

Ich denke nicht dass du das vergleichen kannst, da C2DM "direkt" mit der entsprechenden App kommuniziert, sprich wenn keine App mehr auf dem Gerät verfügbar ist, dann kommt zwar die Message vermutlich noch auf dem Gerät an, aber es wird dann einfach nix passieren, weil keine App da ist, die die Message verarbeiten kann. So viel ich weiß kann man sogar auf dem Server unerreichbare Geräte abfragen und dann entsprechend aus der eigenen Datenbank werfen.

In deinem Fall wird aber eine Email versendet wird, die natürlich nicht direkt mit deiner App im Zusammenhang steht. In diesem Fall müsste man vermutlich wirklich so eine Art Ping an den Server absetzen, der sagt "Hey Server, mich gibt's noch". Da muss man natürlich ein geeignetes Intervall finden, sodass der User nicht de-registriert wird wenn er das Handy mal ne zeit lang nicht an hat. Man wird wohl auch immer Überlappungen haben, sprich der User bekommt noch Mails obwohl die App schon deinstalliert wurde. Entweder weil das Intervall zu groß gewählt wurde, oder auch weil die Mail zu lange braucht. Es ist ja nicht gesagt, das eine Mail "sofort" ankommt.

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

21.02.2012, 13:46:07 via Website

Florian B.
Da muss man natürlich ein geeignetes Intervall finden, sodass der User nicht de-registriert wird wenn er das Handy mal ne zeit lang nicht an hat.
Deswegen ja erstmal nur deaktivieren.
Man muss da ja nichtmal aktiv was machen, sondern kann einfach beim SELECT auf die Datenbank zum Versenden der Email ein
1WHERE (NOW - lastPing) < Schwellwert

Meldet sich das Gerät irgendwann mal wieder, ist es wieder dabei.

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

21.02.2012, 14:18:29 via App

Gib dem Nutzer doch in den eMails einen Link, über den er den Empfang der Mails deaktivieren kann...!?

Oder lass einen dauerhaften Service laufen, der sich regelmäßig auf Deinem Server meldet, der wiederum nur dann den Email Versand veranlasst.

Ist der Service weg = keine Emails mehr.

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
Florian B.
  • Forum-Beiträge: 284

21.02.2012, 14:47:57 via Website

Carsten Müller
Gib dem Nutzer doch in den eMails einen Link, über den er den Empfang der Mails deaktivieren kann...!?
Vielleicht der einfachste und sinnvollste Weg.

Was vielleicht auch noch interessant wäre, wie oft bekommt ein User den ne Mail geschickt? Mehre pro Tag, oder pro Woche oder pro Monat? Und was für Mails das sind? Ich denke davon hängt letztendlich auch ab, wie groß so ein Ping-Intervall sein sollte.

Antworten
Philip M.
  • Forum-Beiträge: 90

21.02.2012, 15:18:32 via Website

Hey, also erstmal vielen Dank für die ganzen Antworten (:

Also bei den Mails handelt es sich letzendlich um Errinerungen, welche der Benutzer selbst einstellt. Der Benutzer kann für gewünschte Tätigkeiten eine Errinerung einrichten und bekommt dafür die 3 nächsten Daten an welchen diese Tätigkeit ausgeführt werden kann zur Auswahl. Sobald er dies gewählt hat kann er eintragen ob er wöchentlich, zwei-wöchentlich oder monatlich errinert werden will.

Letzendlich können so mehrere E-Mails an einem Tag versandt werden (Heute 2 Errinerungen, Morgen 8, Gestern 5) usw. das hängt vom Nutzer ab je nachdem an wie viele Tätigkeiten er errinert werden möchte.

Das mit dem Ping und dem deaktivieren hört sich bis jetzt ziemlich gut an und ich schau mal ob ich das bei mir so integrieren kann wie gewünscht.

Anbei sei vielleicht noch bemerkt das der Benutzer auch, noch zeitgleich zu den E-Mails, Notifications bekommt welche ich aber vom Phone Intern über den AlarmManager regle. Der Grund warum ich die Möglichkeit von C2DM nicht nutze ist, das ich öfters gelesen hatte das die ID welche dafür benötigt wird auch mal nicht vorhanden oder auf gerooteten Phones verändert sein kann. Von daher hab ich das nun so auf diese Weise geregelt und der Web-Server erkennt das Device anhand eines SHA Wertes welchen ich aus der MAC Adresse des Bluetooth Devices generiere. Wenn diese nicht vorhanden ist versuch ich es mit der WiFi MAC Adresse und wenn diese auch nicht vorhanden sein sollte (warum auch immer) ich es doch mit der Device-ID mache.

Falls euch an meinem Vorhaben etwas auffällt was nicht ganz richtig erscheint sagt mir das bitte da ich auch noch recht jung auf diesem Gebiet bin und grade mal seit einem halben Jahr für Android entwickel und dashier meine erste App sein wird (:

— geändert am 22.02.2012, 09:19:20

Antworten