我正在处理一个应用程序,需要在很长一段时间内精确地跟踪当前的位置。
为此,我决定使用融合位置提供程序API,因为它是为节省电池和提高效率而设计的。
经过一段时间的测试,我最终在融合位置提供程序api中遇到了一些破坏交易的问题,甚至在NETWORK_PROVIDER中的软件栈中(我认为融合位置提供程序正在使用)。
我已经尝试过所有类型的LocationRequest优先级以及许多不同的参数。非固定WIFI问题仍然存在于所有场景中,影响到设备上的所有应用程序,包括谷歌自己的应用程序。
首先想到的是,尝试忽略通过WIFI三角剖分进入的位置锁,但由于无法知道该位置来自使用融合位置api的位置,这个想法是一个死胡同。
过滤掉这些位置也是非常棘手的,因为设备经常会在错误的位置停留几个小时/几天,然后移动到那里。
我发现已经有相当多的google跟踪器问题已经被打开,至少提到了问题1。(例如,https://issuetracker.google.com/issues/37123060)所有的问题都没有得到解决。
我正在考虑放弃融合的位置提供商,因为我所尝试的一切都是死胡同。这导致我提出以下问题:
谢谢你的帮助。
编辑:现在https://issuetracker.google.com/issues/37058437也在讨论这个问题
**编辑(2017年8月8日)在位置回调中添加了另一个奇怪的发现
发布于 2017-05-01 15:39:22
首先,您需要停止将位置视为一个单独的坐标。没什么能让你这么做的。位置是一个概率场。即使使用GPS,它给你的位置也有一个以米为单位的精度。有67%的机会,用户是在这么多米之内,它给你的位置。这意味着有1/3的可能性是不存在的。有时差别很大--如果你整晚运行gps,你会得到一些数百米之外的补丁。你只需要处理好这件事。
第二,融合是一种妥协。它的电池比GPS低,但精度低。对大多数用途来说都足够好了。它对你来说可能足够好,也可能不够好。真正的问题是,你真的需要更准确,这样做会给你的用户增加价值吗?偶尔出现的窃听器值得他们把手机抽干吗?这个答案根据你需要位置数据的频率而改变--如果你总是需要它,答案更有可能是电池是个坏主意。
任何位置跟踪方法都有问题。你只需要决定使用哪一种最不痛苦。以下是部分列表:
高精度,高电池利用率,高启动时间,不工作在室内,精度可由政府降低。
信标-极高的精确度,需要蓝牙,只在特定区域工作,需要外部硬件,可能被第三方欺骗(将他的信标in设置到你的信标)
基于网络的-低精度,低资源需求,可能被第三方欺骗如果在孤立的地区(设置假wifi网络SSID)
融合-使用gps和netork数据的组合。因此,你有一个混合的问题,每一个。
发布于 2017-05-31 14:40:04
据我所知,准确性和电池消耗之间是有权衡的。但这闻起来更像是虫子。下面是我这么说的一个例子:我的手机非常清楚,当我重新连接到我的家庭WiFi时,我已经不在火奴鲁鲁了,因为我在达拉斯、波士顿和其他地方的往返旅行中广泛使用了它,包括使用谷歌地图把我带到中间位置。然而,不知怎么的,谷歌的数据库最终得到了我家WiFi的假位置火奴鲁鲁,所以当其他人连接到我家的WiFi时,他们开始偶尔得到火奴鲁鲁的天气更新!现在,如果我的手机一直处于飞机模式,这将变得更有意义。但即使如此,压倒性的证据是,我的家庭WiFi在那里,一个单一的手机报告一个错误的位置,不应该改变这一点。
https://stackoverflow.com/questions/43721505
复制相似问题