答案 0 :(得分:1)
这是自7.0以来称为SettingsApi
的Google Play服务API的一部分。
位置设置 - 虽然FusedLocationProviderApi
组合了多个传感器以确保您获得最佳位置,但您的应用所接收位置的准确性仍然在很大程度上取决于设备上启用的设置(GPS,wifi,飞行模式和其他)。使用新的SettingsApi课程,您可以打开一个“位置设置”对话框,该对话框会显示一键式控制,以便用户无需离开您的应用即可更改其设置。
要使用此API,请首先创建一个至少支持LocationServices.API
的GoogleApiClient。然后将客户端连接到Google Play服务:
mGoogleApiClient = new GoogleApiClient.Builder(context)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build()
...
mGoogleApiClient.connect();
然后创建一个LocationSettingsRequest.Builder
并添加该应用将使用的所有LocationRequests:
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
.addLocationRequest(mLocationRequestHighAccuracy)
.addLocationRequest(mLocationRequestBalancedPowerAccuracy);
有关后续步骤,请点击此处:https://developers.google.com/android/reference/com/google/android/gms/location/SettingsApi
重要提示:如果状态代码为RESOLUTION_REQUIRED,则客户端可以将startResolutionForResult(Activity,int)调用到bring up a dialog, asking for user's permission to modify the location settings to satisfy those requests.
对话框的结果将通过onActivityResult(int,int,Intent)返回。如果客户端对哪些位置提供者可用感兴趣,它可以通过调用fromIntent(Intent)
另请参阅此官方回购:https://github.com/googlemaps/android-samples/tree/master/ApiDemos 如果您想在运行时授予API 23(Android M)的权限。