7

在我正在开发的 android 应用程序中,我希望能够根据用户的位置向用户的手机发送通知。例如,用户在其当前位置本地的餐厅收到特价优惠通知。

我想知道做到这一点的最佳方法?(没有代码,只是如何做的一般结构)。

我想到了两种可能的方法:

方式一:

1) 让应用程序获取用户位置并每 5 分钟向服务器报告一次。2)如果用户在该位置的设置半径内,向他们发送通知。

方式二:

1)发送通知并使用应用程序广播接收器方法过滤并仅向正确区域的用户显示通知。

两者似乎都非常低效,因为方式 1 依赖于持续运行的服务,而方式 2 向应用程序的所有用户发送通知,并且由于通知将非常特定于区域,几乎 100% 的时间通知与用户(因此未显示)。

我已经编写了 GCM 代码并且还可以获取用户的位置,我只需要一种方法将它们链接起来。

我希望我已经把我的问题说清楚了。

4

1 回答 1

5

' Way 1.5 '(1 和 2 的组合)怎么样?

您可以获取用户的位置并将其发送到服务。它将使用广泛的范围(例如城市范围)响应通知。该应用程序将仅显示实际范围的通知。

但是,应用程序知道广泛范围的通知,因此如果用户移动,应用程序能够显示新通知(在广泛范围内)而无需连接到服务。

一些额外的想法:

  • 如果用户离开大范围,应用程序可以自动再次连接到您的服务以请求新的一批通知。
  • 您可以使广泛的范围可配置,因此用户可以更喜欢大量的通信或更广泛的范围。
  • 根据用户的速度(例如,如果他在车里或步行),可以调整广泛的通知范围。
于 2013-01-14T12:59:02.293 回答