虽然自 API 9 以来确实在精度设置方面出现了一些新的可能性,但 @dev mz 所说的不起作用。您不能直接在criteria.setAccuracy. 相反,您可以像这样使用这些新功能:
//All your normal criteria setup
Criteria criteria = new Criteria();
//Use FINE or COARSE (or NO_REQUIREMENT) here
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAltitudeRequired(true);
criteria.setSpeedRequired(true);
criteria.setCostAllowed(true);
criteria.setBearingRequired(true);
//API level 9 and up
criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);
criteria.setVerticalAccuracy(Criteria.ACCURACY_HIGH);
criteria.setBearingAccuracy(Criteria.ACCURACY_LOW);
criteria.setSpeedAccuracy(Criteria.ACCURACY_HIGH);
Run Code Online (Sandbox Code Playgroud)
至于您的问题,请注意,我们正在讨论传入位置更新的标准。这实际上不会提高 GPS 数据的质量,因为这是特定于设备/硬件/网络的。它只是充当传入地理位置的过滤器。
请参阅这篇文章:Google 地图和带有 MapView 的应用程序有不同的当前位置
您是在谈论您自己的应用程序中的 MapView 还是 Google 地图应用程序?在您自己的地图中,使用网络提供商和 GPS 提供商来获取位置。GPS 只能在室外自由天空下工作,并且更准确,而网络提供商也可以在室内工作,但准确度较低。
| 归档时间: |
|
| 查看次数: |
15223 次 |
| 最近记录: |