什么是最节省电池的方式来监控Android中多个位置的邻近区域?

时间:2013-06-18 10:05:53

标签: android android-location geofencing android-geofence

我有一个应用程序,每当用户接近一组位置中的任何一个时,它会采取一些(互联网)动作(例如,假设我在星巴克商店附近时通知服务器,所以我的咖啡习惯可以分析)。

什么是电池效率最高(但可靠且相对准确)的方式,使手机在某个位置时做某事?我不需要完美的定位精度 - 在50米左右就可以了。

目前,我为每个半径为100米的位置设置了ProximityAlert,然后让它产生一个Intent,然后由一个在后台运行的服务提供服务。该服务还包括一个警报,每三个小时左右下载一次。

服务本身似乎没有消耗任何大量电池 - 电池全部被“Android OS”耗尽。根据Android 4.1.2电池监视器,Android操作系统使用的CPU数量是没有我的应用程序的3倍,并且大部分时间都处于“保持清醒状态”。

将它更改为IntentService会有所作为吗?

减少(或增加)警报的半径是否会产生影响?

将它转换为地理围栏(https://developer.android.com/training/location/geofencing.html)会有很大的不同吗?

我可以将它设置为使用更便宜的位置服务,除非它认为它靠近其中一个位置(或者它会自动执行吗?)

3 个答案:

答案 0 :(得分:2)

我从未使用过LocationManagers接近警报功能,所以我真的不知道他们耗尽了多少电池,但据我所知,新的Geofence服务(https://developer.android.com/training/location/geofencing.html)是专门设计的电池 - 友好的时尚。

答案 1 :(得分:1)

LocationManagers提供了一种非常困难的方法来编写您需要的东西。谷歌重新设计了其位置提供商,以便将它们与传感器融合在一起它是最新的,最好的,使用更少的电池,并通过您的应用程序魔力,删除您需要在您的gps /网络提供商之间编写的所有1000行无用代码。

新的api是LocationClient api。观看此video并自行演示。

答案 2 :(得分:1)

你最近可以使用谷歌提供的新geo fence api,它的功效更高 https://developer.android.com/training/location/geofencing.html