如何提供启用GPS的选项

时间:2015-11-28 08:00:39

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

我希望在禁用GPS时显示开启GPS的对话框。

enter image description here

查看图片。当我点击YES时,应该自动打开我的GPS而不进行设置。

那么,如何通过选择YES选项启用GPS?

1 个答案:

答案 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)

从Intent中检索LocationSettingsStates。

另请参阅此官方回购:https://github.com/googlemaps/android-samples/tree/master/ApiDemos 如果您想在运行时授予API 23(Android M)的权限。