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