【发布时间】:2013-08-06 11:46:09
【问题描述】:
我对使用特定标准的 getBestProvider 方法的选择算法有疑问。
当轴承和速度的精度设置为中、高或低时;默认情况下,GPS 提供商被选为标准的最佳提供商,这很好,因为网络提供商没有与这些参数相关的任何信息。
但是,即使我在未启用它们的情况下设置了轴承精度或速度精度(将参数启用字段设置为 true);始终调用 GPS 提供程序,即使方位或速度将返回为 0,因为未启用。
因此,在这种情况下,为什么不将网络提供商作为最佳提供商,因为无论如何我们都不会有方位或速度。
如果有人尝试使用设备,这是否会对设备的电池寿命产生任何影响,因为 GPS 会比网络提供商消耗更多的电量。
简短的例子: 标准对象.setBearingRequired (true);
criteriaobject.setBearingAccuracy (Criteria.LOW_ACCURACY);
locationmanagerobject.getBestProvider(criteriaobject, true); // 返回 GPS,这很好
但是;
criteriaobject.setBearingAccuracy (Criteria.LOW_ACCURACY);
locationmanagerobject.getBestProvider(criteriaobject, true); // 再次返回没有意义的 GPS,因为未启用方位,返回的位置根本没有方位,因此 NETWORK 似乎是最好的提供者,但这不是它的工作方式。
对此有何想法或逻辑推理?或者是否会因为这样的实施而对设备的电池寿命产生任何影响?
【问题讨论】:
标签: android locationmanager android-location