实施定期将其位置发送到服务器的基于位置的Android应用的适当方法是什么?
以下是我想要实施的具体流程:
我的主要困惑源于第1点:如果应用尚未启动,如何将GPS坐标发送到服务器?是否仅仅是实施定期将电话位置发送到服务器的服务?如何在用户安装应用程序后确保服务始终运行?
(适用于Android的Groupon应用程序执行类似操作,即使应用程序处于非活动状态,您也会间歇性地收到附近交易的通知。是否知道他们如何实施此操作?)
答案 0 :(得分:1)
查看this文章。示例代码给出了您正在做的事情的一个很好的例子。
答案 1 :(得分:0)
您可以简单地创建后台服务,然后实现位置监听器。在该位置监听器中,您可以使用requestLocationUpdate
方法设置时间间隔,以便以特定时间间隔对GPS进行ping操作。
这是一个位置管理器实例:
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, timeinterval2, 0, locationListener);
您可以从服务将该位置发送到服务器。您还可以发送通知以启动该应用。
答案 2 :(得分:0)
我不会只使用Service
,最好每次使用AlarmManager
设置闹钟(5分钟,15分钟或您需要的),然后获取位置。 @CommonsWare做了一些非常有用的code(它还涉及WEAK_LOCKS
所以如果手机进入睡眠状态,一切仍然运行等等。)
此外,您不需要使用C2DM,因为您必须将您的位置发送到服务器,服务器会使用地理信息回复您。 C2DM仅适用于您未开始通信的情况。