在我正在开发的Android应用中,我希望能够根据用户的位置向用户的手机发送通知。例如,用户在其当前位置的本地餐馆获得特殊交易的通知。
我想知道最好的方法吗? (没有代码,只是如何做的一般结构)。
我想到了两种可能的方法:
方式1:
1)让应用程序获取用户位置并每隔5分钟将其报告给服务器。 2)如果用户在该位置的设定半径内,则向他们发送通知。
方式2:
1)发送通知并使用应用广播接收方法进行过滤,并仅在正确的区域向用户显示通知。
两者看起来都非常低效,因为方式1依赖于持续运行的服务,方式2向应用的所有用户发送通知,并且通知将是非常特定于区域的,几乎100%的时间通知将不是与用户相关(因此未显示)。
我已经编写了GCM代码,也可以获取用户位置,我只需要一种方法来链接它们。
我希望我的问题清楚明了。
答案 0 :(得分:5)
' Way 1.5 '(1和2的组合)怎么样?
您可以获取用户的位置并将其发送到服务。 它将使用广泛的范围(例如城市范围)进行通知。 该应用程序仅显示实际范围的通知。
但是,应用程序知道范围广泛的通知,因此如果用户移动,应用程序可以在不连接服务的情况下显示新的通知(在宽范围内)。
一些额外的想法: