2011-11-22 71 views
0

实施基于位置的Android应用程序的周期性发送位置到服务器的适当方式是什么?Android:如何在应用程序处于非活动状态时将位置信息发送到服务器

下面是具体流程我想实现:

  1. 主要Android应用程序是无效的(即尚未启动)基于设备的GPS位置
  2. ,服务器可能会推信息(通过C2DM)到装置
  3. 在接收到消息,通知应出现在通知栏(其然后可被用于启动应用程序)

我主要混乱茎从第一点开始:如果应用程序尚未启动,我如何向服务器发送GPS坐标?它只是一个实施服务的问题,定期将电话位置发送到服务器?如何确保服务在用户安装应用后始终运行?

(Groupon的应用程序为Android做类似的东西,在这里您间歇性地收到附近优惠的通知,即使应用处于非活动状态。任何想法,他们如何可能已经实现了这一点?)

+0

请检查这一点,类似的应用程序和工作正常,但我需要一些功能,你会在阅读我的帖子后知道一些帮助,并抱歉把这个东西在答案,因为我可以找到评论的选项。 。 http://stackoverflow.com/questions/14088095/how-can-i-send-the-gps-and-network-location-cordinates-to-a-server-static-ip/14103445#14103445 – user2010282

回答

0

我不会使用只是Service,更好地设置一个报警使用AlarmManager每个(5分钟,15分钟或你需要的),然后得到的位置。 @CommonsWare已经做了一些code这就是相当有用的(它也涉及WEAK_LOCKS因此,如果手机进入睡眠一切仍然运行等)

而且,你并不需要使用C2DM,因为你必须把你的位置到服务器和服务器使用地理信息回应您。 C2DM仅适用于不开始通信的情况。

0

你,可以简单地创建一个背景服务然后实现位置监听器。在该位置监听器中,您可以在requestLocationUpdate方法中设置时间间隔,以便在特定的时间间隔内ping GPS。 这里是一个位置管理器实例:

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, timeinterval2, 0, locationListener); 

您可以发送位置从该服务的服务器。您也可以发送通知来启动应用程序。

1

看看this文章。示例代码给出了一个很好的例子,说明你在做什么。

相关问题