1

我对使用特定标准的 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 似乎是最好的提供者,但这不是它的工作方式。

对此有任何想法或逻辑推理吗?或者是否会因为这种实施而对设备的电池寿命产生任何影响?

4

3 回答 3

0

The Google Play Services make it easier for developers to develop location-based apps. Just as the CoreLocation does in iOS, there is a single location provider than takes care of all your needs, no need to chose between GPS or another one... see http://developer.android.com/reference/com/google/android/gms/location/package-summary.html

于 2013-08-05T17:36:44.267 回答
0

您必须设置轴承精度=> NO_REQUIREMENT然后您将获得网络作为最佳提供商

通过设置方位精度=> ACCURACY_LOW而不是ACCURACY_HIGH加快定位时间

于 2013-11-28T06:11:31.877 回答
0

因此,在这种情况下,为什么不将网络提供商作为最佳提供商,因为无论如何我们都不会有方位或速度。

因为您没有其他东西Criteria可以引导选择算法朝着使用网络提供商的方向发展。

如果有人尝试使用它,这是否会对设备的电池寿命产生任何影响,因为 GPS 会比网络提供商使用更多的电量。

如果您关心电源,请使用setPowerRequirement()onCriteria

于 2013-08-05T17:13:44.247 回答