如果 GPS 已打开,Android 设置 API 会打开 WiFi 以提高定位精度

标签 android gps wifi

我已经使用新的设置 API 来打开 GPS,而无需离开我的应用程序。 http://android-developers.blogspot.in/2015/03/google-play-services-70-places-everyone.html 我有这个 locationRequest 与 PRIORITY_HIGH_ACCURACY 使用 GPS。

final LocationRequest locationRequest = LocationRequest.create() 
            .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
            .setInterval(DriverApplication.TRACE_MAX_INTERVAL)
            .setMaxWaitTime(DriverApplication.TRACE_MAX_INTERVAL*2)
            .setFastestInterval(DriverApplication.TRACE_FASTEST_INTERVAL);

但 GMS Location 不使用 GPS,它也显示打开 WiFi 的消息。我已经尝试删除忘记所有 WiFi 网络和来自 GMS 的消息已更改并添加来自谷歌的请求以收集匿名位置数据并发送它.. 如果 WiFi 关闭,如何跳过此消息?

来自 LocationRequest 文档:

The priority of the request is a strong hint to the LocationClient for which location sources to use. For example, PRIORITY_HIGH_ACCURACY is more likely to use GPS, and PRIORITY_BALANCED_POWER_ACCURACY is more likely to use WIFI & Cell tower positioning, but it also depends on many other factors (such as which sources are available) and is implementation dependent.

PRIORITY_HIGH_ACCURACY 更有可能使用 GPS - 如果 GPS 已启用,为什么需要发送用户消息以启用 WiFi?这与 GPS 坐标的准确性无关。每次启用 GPS 时,设置 API 都会显示启用 WiFi 的对话框。

最佳答案

请参阅位置设置状态。 isGpsUsable() .

LocationSettingsStates locationSettingsStates = locationSettingsResult.getLocationSettingsStates();
    if (!locationSettingsStates.isGpsPresent() || !locationSettingsStates.isGpsUsable()) {
            Status status = locationSettingsResult.getStatus();
        if (status.getStatusCode() == LocationSettingsStatusCodes.RESOLUTION_REQUIRED) {
            try {
                status.startResolutionForResult(StilActivity.this, REQUEST_CHECK_SETTINGS);
            }
            catch (IntentSender.SendIntentException th) {
                Log.e(TAG, "Error opening settings activity.", th);
            }
        }
    }

关于如果 GPS 已打开,Android 设置 API 会打开 WiFi 以提高定位精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30461723/

相关文章:

android - WindowManager 内的 RecyclerView 不更新

android - map 未在发布的 Android 应用上显示

安卓应用内支付 : User set price

android - 整个应用程序中只有一个 LocationListener

java - Java 程序中是否有用于 wifi 连接和数据传输的 API?

java - 如何在java中获取wifi网络接口(interface)名称

Android:使用 GSON 解析带有动态字段的响应

android - 为什么我的应用程序 map 不以 GPS 坐标为中心?

c# - 根据随机接收的位置坐标计算速度

ios - 核心位置常数含义