我想实施GPS跟踪服务。在网上搜索后,我仍然对练习此功能的最佳方式感到困惑。
我想在他离家一英里的地方开始关注用户。
我认为应用程序将安装在用户家中并使用:
locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
我将获取用户的坐标并将其与行进时更改的坐标进行比较。 当用户离开他家一英里时,我会每隔预定义的时间间隔发送带有他的地图位置的短信。
我想知道是否有人之前做过类似事情,并且可以为此任务推荐最佳实践。
此外,GPS的准确程度如何,以及获得距离的最佳做法是什么?
提前致谢。
答案 0 :(得分:4)
根据我的经验,使用GPS始终跟踪用户何时离开其家乡位置并不是一个好主意,因为它会立即烧毁电池。我最后通过查看过夜的蜂窝塔ID来学习家庭位置(假设用户在家)。如果你达到一定程度的信心,你知道用户的家庭位置,你可以问他“你现在在家吗?”完全确定(虽然这对许多用户来说有点令人毛骨悚然)。
如果您遵循此策略,您可以启动GPS,如果用户连接到新的手机信号塔并节省大量电池。
关于准确性。您可以获得每个Android.Location
对象提供的准确性。如果您在外面,通常是5或10米。但要注意,根据documentation:
我们将准确度定义为68%置信度的半径。换句话说,如果您绘制一个以此位置的纬度和经度为中心的圆,并且半径等于精度,那么真实位置在圆内的概率为68%。
答案 1 :(得分:3)
小心,getLastKnownLocation方法不需要返回用户的原始位置。 你宁愿得到当前的位置。大多数情况下,getLastKnownLocation用于快速获取位置(避免繁重的后台工作)。
GPS准确度取决于许多因素:
天气,芯片质量,领域......
但是,大多数情况下,网络提供商更准确。
这是一个非常好的链接:http://developer.android.com/guide/topics/location/strategies.html
你会学到很多东西。