首页 > 解决方案 > 不推荐使用 SettingsApi

问题描述

直到上次更新我使用了下一个代码:

mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(LocationServices.API)
                .build();
        mLocationRequest = new LocationRequest();
        mLocationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS);
        mLocationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
        builder.addLocationRequest(mLocationRequest);
        builder.setAlwaysShow(true);
        mLocationSettingsRequest = builder.build();

        PendingResult<LocationSettingsResult> result =
                LocationServices.SettingsApi.checkLocationSettings(
                        mGoogleApiClient,
                        mLocationSettingsRequest
                );
        result.setResultCallback(this);

不幸的是,在更新了 LocationServices.SettingsApi 已弃用的警告消息后。如何更改我的代码以适应新的更新?

标签: androidgpslocationclient

解决方案


SettingsApi接口已弃用。您应该改用基于 GoogleApi 的 API SettingsClient

公共类 SettingsClient 扩展了 GoogleApi

此 API 使应用程序可以轻松确保设备的系统设置针对应用程序的位置需求进行了正确配置。

    LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
    builder.addLocationRequest(mLocationRequest); // mLocationRequest is a Object of LocationRequest
    LocationSettingsRequest locationSettingsRequest = builder.build();

    SettingsClient settingsClient = LocationServices.getSettingsClient(this);
    settingsClient.checkLocationSettings(locationSettingsRequest);

推荐阅读