Android的位置感知的通知(Android location aware notificatio

2019-07-31 03:54发布

我正在寻找一个位置感知的通知最先进的技术。

我的第一次尝试是使用的LocationManager的addProximityAlert但它需要ACCESS_FINE_LOCATION(COARSE_LOCATION给了我一个SecurityException),并保持GPS并且总是有效(至少在果冻豆),它很快消耗电池电量。 它也似乎并不尊重检查一次,每4分钟的时候,屏幕是睡着了( addProximityAlert )。

我想与PASSIVE_PROVIDER合作,收集其他应用程序的位置信息,并可能使用服务每隔一段时间(索要COARSE_LOCATION像每4分钟的时候,屏幕关闭,并更频繁地在屏幕上,并该装置被插入)。

该要求是当用户去附近的一些地方,应用程序将触发一个通知。

任何人都已经实现或有任何建议,以有效和电池效率的方式来实现这一点?

Answer 1:

我建立这样的应用程序(因此我的问题在办公时间Q&A关于如何测量的LocationManager的电力消耗),同时它的工作真的很好。 我最初打算使用内置的接近警报,但奋斗在相同的问题,因为你并认为它不够灵活。

相反,我建立它使用LocationProvider轮询位置使用NETWORK_PROVIDER每五分钟服务,计算距离到所需位置(一个或多个),如果距离内,触发一个通知。 在有大量WiFi网络的城市,这给了我50米(报道)的精度。

我也用PASSIVE_PROVIDER从其他应用的位置请求中受益。

如果我在附近一所希望的位置和报道的准确性是太粗,以决定我是否在指定邻近范围内与否,我使用的是单一的GPS位置请求作为备份。 我也用,如果NETWORK_PROVIDER超时单一的GPS位置请求。 要没有,而我使用的地铁GPS提供商耗尽电池,也有指数退避超时。

虽然我连接到WiFi网络,我认为我不动,在此期间禁止位置提供。

我的最后一次更改是使用15分钟(“不精确重复”)计时器的NETWORK_PROVIDER如果我能决定,我将无法在15分钟内就做出任何的保存位置(所以轮询为5分钟INTERVALL没有意义)。 这有助于节省电力。

我想使用甚至更长的时间间隔,以节省更多的电力,但它不容易在这里找到启发,决定我是否能够达到这个时间内我储存的位置或没有,因为我不能总是假设同样的行驶速度(步行,乘坐火车或汽车旅行)。 但因为我不能够测量由我的应用程序中的LocationManager的功率损耗,我不知道如何在每一天的场景评估功耗。

我不会介意内置的API将提供所有的逻辑,但我得出的结论是没有,所以我建这个我自己。

希望这可以帮助你。



Answer 2:

我使用下面库做到这一点。 https://code.google.com/p/little-fluffy-location-library/

这是很容易使用,但它并没有给太多的灵活性。 你不能改变即时比如更新频率。 但它的来源是可用的,你可以把它转换。



文章来源: Android location aware notifications