根据用户位置发送通知

时间:2013-01-14 12:51:06

标签: android notifications location google-cloud-messaging

在我正在开发的Android应用中,我希望能够根据用户的位置向用户的手机发送通知。例如,用户在其当前位置的本地餐馆获得特殊交易的通知。

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

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

方式1:

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

方式2:

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

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

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

我希望我的问题清楚明了。

1 个答案:

答案 0 :(得分:5)

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

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

但是,应用程序知道范围广泛的通知,因此如果用户移动,应用程序可以在不连接服务的情况下显示新的通知(在宽范围内)。

一些额外的想法:

  • 如果用户离开宽范围,应用程序可以自动连接 再次向您的服务请求新一批通知。
  • 您可以将广泛的范围配置,因此用户可以选择大量的通信或更广泛的范围。
  • 根据用户的速度(例如,如果他在车上或步行),可以调整广泛的通知。