我正在开发一个应用程序,即使GPS已关闭或无法使用,也会在用户进入预定义区域后执行某些操作。
问题:如何识别用户已进入该区域(半径或精度为500至700米)。
专业人士可能的解决方案缺点:
优点 :
一个。如果GPS开启,将会工作吗?能够与卫星连接。
湾即使手机屏幕关闭(即睡眠模式)也能正常工作
缺点 : 一个。如果GPS关闭,则无效。
湾在地下室,隧道等连接问题的情况下不会工作。
一个。当屏幕关闭但GPS已开启时。
湾当GPS关闭时。
我知道我希望在输入时执行操作的区域的单元ID或塔ID,所以当调用onCellLocationChanged方法时,我从cellLocationobject&获取cid。将其与存储的细胞ID进行比较。
问题 onCellLocationChanged 方法屏幕 屏幕如果关闭。发现这个方法在传入&的情况下也被调用拨出电话,不知道是什么原因只应在小区位置改变时调用。谁知道原因?优点 :
一个。即使GPS关闭也能工作。
缺点 :
一个。如果关闭屏幕(即睡眠模式),则不调用onCellLocationChanged方法。在传入&的情况下也会调用它。打电话。
尝试保持部分唤醒锁此方法未调用。有人写过开始服务&请求从网络更新位置,然后即使屏幕关闭onCellLocationChanged方法也将被调用。当屏幕关闭时,尝试但仍然在onCellLocationChanged上调用。
每隔2分钟创建一次请求从网络更新位置的服务。最小距离是500米。
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000 *60 *2,500,this);
第4点查询:
一个。如果屏幕关闭,我们是否会从网络获取位置更新。
湾当GPS正在从网络获取位置更新但GPS关闭时没有从网络获取位置更新。不是100%肯定这一点需要检查更多。当我们从网络和网站请求位置更新时,请告诉我们的行为。 GPS关闭。
在一篇文章中提出了太多问题,但在探索了10-12天的各种选项之后,即使没有GPS也无法找到可靠的解决方案。
感谢。
答案 0 :(得分:0)
披露:我为Pathsense工作。
虽然我没有测试Google的地理围栏或Android的地理围栏(addProximityAlert()
)没有使用GPS,但我已经广泛测试了Pathsense地理围栏,而且我知道它可以在没有GPS的情况下工作(尽管不是很准确)。
但是,如果无法使用第三方库,则可以使用minTime至少30秒设置位置更新请求(LocationManager.requestUpdates()
)。这样可以降低功耗,您可以在您监控的位置和LocationManager给出的位置之间进行distance calculation,并且如果它大于您的监控区域,则执行您想要的任何操作。