2013-01-14 8 views
7

In meiner Android-App, die ich entwickle, möchte ich je nach Standort Benachrichtigungen an das Telefon des Benutzers senden können. Beispiel: Ein Benutzer erhält Benachrichtigungen zu Sonderangeboten in Restaurants, die sich lokal an seinem aktuellen Standort befinden.Benachrichtigungen basierend auf dem Standort des Benutzers senden

Ich würde gerne den besten Weg wissen, dies zu tun? (Nicht den Code haben, nur die allgemeine Struktur, wie es geht).

Ich habe gedacht zwei Möglichkeiten:

Way 1:

1) Haben die App dem Benutzer Standort erhalten und sie an den Server alle 5 Minuten melden. 2) Wenn sich der Benutzer im festgelegten Radius des Standorts befindet, senden Sie ihm die Benachrichtigung.

Way 2:

1) die Mitteilungen senden und nutzen die Broadcast-Anwendungen Empfänger Methode/s zu filtern und zeigen nur Benachrichtigungen an Benutzer in den richtigen Bereichen.

Beide scheinen schrecklich ineffizient, da Weg 1 auf einem ständig laufenden Dienst beruht, und Weg 2 Benachrichtigungen an alle Benutzer der App senden, und da Benachrichtigungen sehr bereichsspezifisch sind, wird fast 100% der Zeit die Benachrichtigung nicht relevant für den Benutzer (und daher nicht gezeigt).

Ich habe bereits GCM-Code geschrieben und kann auch den Benutzer Standort, ich brauche nur eine Möglichkeit, sie zu verknüpfen.

Ich hoffe, ich habe meine Frage klar gemacht.

+0

was haben Sie sich letztendlich entschieden? –

Antwort

5

Wie wäre es mit 'Way 1.5' (eine Kombination aus 1 und 2)?

Sie können den Standort des Benutzers abrufen und an den Dienst senden. Es wird mit einer Benachrichtigung mit einer breiten Palette (z. B. stadtweit) reagieren. Die Anwendung zeigt nur die Benachrichtigung für den tatsächlichen Bereich an.

Die Anwendung kennt jedoch die Benachrichtigungen für den breiten Bereich. Wenn die Benutzer verschoben werden, kann die Anwendung neue Benachrichtigungen (innerhalb des breiten Bereichs) anzeigen, ohne eine Verbindung zum Dienst herzustellen.

ein paar Gedanken:

  • Wenn der Benutzer den breiten Bereich verlässt, kann die Anwendung automatisch zu Ihren Diensten verbinden wieder eine neue Charge von Benachrichtigungen zu beantragen.
  • Sie können die breite Palette konfigurierbar machen, so dass der Benutzer viele Kommunikationen oder eine größere Bandbreite bevorzugen kann.
  • Abhängig von der Geschwindigkeit des Benutzers (zB ob er/sie in einem Auto oder zu Fuß ist), kann der breite Bereich der Benachrichtigung eingestellt werden.
+1

"Wenn der Benutzer den breiten Bereich verlässt" - wie kann der Dienst das herausfinden? ein Zentrum Pint und ein Radius vom Server und dann überprüfen, ob es von Zeit zu Zeit immer noch im Kreis ist? –

+0

Der Dienst könnte diese Details (z. B. Mittelpunkt und Radius) zusammen mit den anderen Informationen senden, damit Ihre Anwendung prüfen kann, ob eine Aktualisierung erforderlich ist oder nicht. Keine Notwendigkeit, den Service damit zu belästigen! – Veger

Verwandte Themen