使用Google Play服务未显示位置信息框

时间:2015-11-19 14:22:05

标签: android gps google-play-services

您好我正在尝试使用Google Play服务自动切换gps。我正在使用以下代码。但它不起作用。甚至消息框也没有显示。

我想要这样。

Image

但即便没有显示此消息框。

public void settingsrequest()
            {
                LocationRequest locationRequest = LocationRequest.create();
                locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
                locationRequest.setInterval(30 * 1000);
                locationRequest.setFastestInterval(5 * 1000);
                LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
                        .addLocationRequest(locationRequest);
                builder.setAlwaysShow(true); //this is the key ingredient

                PendingResult<LocationSettingsResult> result =
                        LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build());
                result.setResultCallback(new ResultCallback<LocationSettingsResult>() {
                    @Override
                    public void onResult(LocationSettingsResult result) {
                        final Status status = result.getStatus();
                        final LocationSettingsStates state = result.getLocationSettingsStates();
                        switch (status.getStatusCode()) {
                            case LocationSettingsStatusCodes.SUCCESS:
                                // All location settings are satisfied. The client can initialize location
                                // requests here.
                                break;
                            case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
                                // Location settings are not satisfied. But could be fixed by showing the user
                                // a dialog.
                                try {
                                    // Show the dialog by calling startResolutionForResult(),
                                    // and check the result in onActivityResult().
                                    status.startResolutionForResult(Splash_Sceen_Activity.this, REQUEST_CHECK_SETTINGS);
                                } catch (IntentSender.SendIntentException e) {
                                    // 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;
                        }
                    }
                });
            }
            @Override
            protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                switch (requestCode) {
        // Check for the integer request code originally supplied to startResolutionForResult().
                    case REQUEST_CHECK_SETTINGS:
                        switch (resultCode) {
                            case Activity.RESULT_OK:
                                //startLocationUpdates();
                                CheckSession();
                                break;
                            case Activity.RESULT_CANCELED:
                                //settingsrequest();//keep asking if imp or do whatever
                                break;
                        }
                        break;
                }
            }

请帮我解决这个问题。

0 个答案:

没有答案