如果GPS已经打开,Android设置API会打开WiFi以提高位置准确性

时间:2015-05-26 14:41:03

标签: 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位置不使用GPS只会出现打开WiFi的消息。我试图删除忘记所有WiFi网络和来自GMS的消息被更改并添加来自谷歌的请求收集匿名位置数据并发送它.. 如果WiFi关闭,如何跳过此消息?

来自LocationRequest文档:

  

请求的优先级是对LocationClient的强烈提示   要使用哪个位置来源。例如,PRIORITY_HIGH_ACCURACY是   更有可能使用GPS,PRIORITY_BALANCED_POWER_ACCURACY更多   可能会使用WIFI&细胞塔的定位,但也取决于   许多其他因素(例如哪些来源可用)和   依赖于实现。

PRIORITY_HIGH_ACCURACY更有可能使用GPS - 如果GPS启用,为什么需要发送用户信息以启用WiFi?这不取决于GPS坐标的准确性。每次启用GPS时,设置API显示对话框以启用WiFi。

2 个答案:

答案 0 :(得分:4)

请参阅LocationSettingsStates。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);
            }
        }
    }

答案 1 :(得分:0)

PRIORITY_HIGH_ACCURACY表示您正在尝试从设备GPS,Wifi和移动网络中获取位置。