2013-01-14 22 views
7

私が開発しているAndroidアプリケーションでは、自分の場所に応じてユーザーの電話に通知を送信したいと考えています。たとえば、ユーザーは現在地のローカルなレストランで特別な取引の通知を受け取ります。ユーザーの場所に基づいて通知を送信する

私はこれを行うための最善の方法を知っていますか? (コードはありません、それを行う方法の一般的な構造だけです)。

私は2つの方法を考えています

ウェイ1:

1)アプリは、ユーザーの位置を取得し、サーバーに5分ごとにそれを報告してもらいます。 2)ユーザーが場所の半径に設定されている場合は、通知を送信します。

ウェイ2:

1)通知を送信し、フィルタリングのみ正しいエリア内のユーザに通知を表示するブロードキャストアプリ受信方法/ Sを使用します。

方法1は常に実行中のサービスに依存し、方法2はアプリのすべてのユーザーに通知を送信するため、通知は非常に非効率的ですユーザに関連している(したがって、示されていない)。

私はすでにGCMコードを書いており、ユーザーの場所も取得できます。リンクする方法が必要です。

私は私の質問を明確にしたいと思う。

+0

最終的に何を決めましたか? –

答えて

5

ウェイ1.5(1と2の組み合わせ)はどうですか?

ユーザーの場所を取得してサービスに送信できます。 広範囲(例えば都市全体)の通知で対応します。 アプリケーションは、実際の範囲の通知のみを表示します。

しかし、アプリケーションは広範囲の通知を知っているため、ユーザーが移動すると、アプリケーションはサービスに接続せずに新しい通知(広い範囲内)を表示できます。

いくつかの追加の考え:

  • ユーザーは幅広いを離れる場合は、アプリケーションが自動的に通知の新しいバッチを要求するために、もう一度あなたのサービスに を接続することができます。
  • 広い範囲を構成可能にすることができます。そのため、ユーザーは多くの通信またはより広い範囲を好むことができます。
  • ユーザーの速度(たとえば、彼が車に乗っている場合や歩いている場合)によって、広範囲の通知を調整することができます。
+1

「ユーザーが広い範囲を離れている場合」 - サービスはどのようにこれを把握できますか?センターピントと半径をサーバから取得し、それが時折サークルの内側にあるかどうかを確認します。 –

+0

サービスは、これらの詳細(例えば、中心点と半径)を他の情報と共に送信することができるので、アプリケーションは更新が必要かどうかを確認することができます。これでサービスを気にする必要はありません! – Veger

関連する問題