根据用户位置发送通知

use*_*590 7 notifications android location google-cloud-messaging

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

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

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

方式1:

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

方式2:

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

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

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

我希望我的问题清楚.

Veg*_*ger 5

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

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

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

一些额外的想法:

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