如何取消在LocationSettingsRequest上创建的对话框

时间:2017-04-13 09:26:53

标签: android google-play-services android-location

我正在使用LocationSettingsRequest来询问用户启用位置以下是我的代码

 LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(mLocationRequest);
    PendingResult<LocationSettingsResult> result = LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build());
    result.setResultCallback(new ResultCallback<LocationSettingsResult>() {
        @Override
        public void onResult(@NonNull LocationSettingsResult locationSettingsResult) {
            final Status status = locationSettingsResult.getStatus();
            final LocationSettingsStates locationSettingsStates = locationSettingsResult.getLocationSettingsStates();
            switch (status.getStatusCode()) {
                case LocationSettingsStatusCodes.SUCCESS:// All location settings are satisfied. The client can initialize location requests here.
                    //mGoogleApiClient.connect();
                    startLocationUpdates();
                    break;
                case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:// Location settings are not satisfied, but this can be fixed by showing the user a dialog.
                    try {
                        status.startResolutionForResult(getActivity(), REQUEST_CHECK_SETTINGS);// Show the dialog by calling startResolutionForResult(), and check the result in onActivityResult().
                    } catch (IntentSender.SendIntentException e) {
                        e.printStackTrace();// Ignore the error.
                    }
                    break;
                case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:// Location settings are not satisfied. However, we have no way to fix the settings so we won't show the dialog.
                    break;
            }
        }
    });

它创建一个对话框我要取消对话框是片段被停止怎么办它没有方法呢

1 个答案:

答案 0 :(得分:0)

我认为你不应该打电话

status.startResolutionForResult(getActivity(), REQUEST_CHECK_SETTINGS);

这样可以防止GPS服务显示对话框,但您必须自己处理状态。