Google Play Services 7.0设置对话框

时间:2015-05-11 09:34:57

标签: android google-play-services

Google在他们的blog post单触设置对话框中描述了要求用户打开他们的位置(让用户打开位置而不将其发送到手机的设置)。 我只是找不到合适的方法/方法来在他们的API文档中执行此操作。

任何人都已经使用过这个并且可以给出解释吗?

2 个答案:

答案 0 :(得分:5)

答案 1 :(得分:2)

更具体,相关代码如下

class MainActivity extends Activity implements ResultCallback<LocationSettingsResult> {
    protected void checkLocationSettings() {
        PendingResult<LocationSettingsResult> result =
                LocationServices.SettingsApi.checkLocationSettings(
                        mGoogleApiClient,
                        mLocationSettingsRequest
                );
        result.setResultCallback(this);
    }

    @Override
    public void onResult(LocationSettingsResult locationSettingsResult) {
        final Status status = locationSettingsResult.getStatus();
        switch (status.getStatusCode()) {
            case LocationSettingsStatusCodes.SUCCESS:
                Log.i(TAG, "All location settings are satisfied.");
                startLocationUpdates();
                break;
            case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
                Log.i(TAG, "Location settings are not satisfied. Show the user a dialog to" +
                        "upgrade location settings ");
                try {
                    // Show the dialog by calling startResolutionForResult(), and check the result
                    // in onActivityResult().
                    status.startResolutionForResult(MainActivity.this, REQUEST_CHECK_SETTINGS);
                } catch (IntentSender.SendIntentException e) {
                    Log.i(TAG, "PendingIntent unable to execute request.");
                }
                break;
            case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
                Log.i(TAG, "Location settings are inadequate, and cannot be fixed here. Dialog " +
                        "not created.");
                break;
        }
    }
}
// This code is from https://github.com/googlesamples/android-play-location/blob/master/LocationSettings/app/src/main/java/com/google/android/gms/location/sample/locationsettings/MainActivity.java

在LocationSettingsStatusCodes#RESOLUTION_REQUIRED的结果回调中,Status.startResolutionForResult可以解决问题。