如何将Google Location API与android棉花糖运行时权限系统集成?
我正在尝试使用Google location API获取用户在我的活动中的位置。我有一个按钮,如果用户点击它,用户的位置应该被检索并发送到应用程序后端。 根据谷歌的文档如何将Google Location API与android棉花糖运行时权限系统集成?,android,android-6.0-marshmallow,android-permissions,google-location-services,Android,Android 6.0 Marshmallow,Android Permissions,Google Location Services,我正在尝试使用Google location API获取用户在我的活动中的位置。我有一个按钮,如果用户点击它,用户的位置应该被检索并发送到应用程序后端。 根据谷歌的文档 LocationServices.FusedLocationApi .getLastLocation(apiClient) 方法必须在onConnected方法中调用。但是,如果我没有检查用户授予的权限,该方法将抛出错误 我的问题是,我在我的按钮的onClick方法中请求许可 我
LocationServices.FusedLocationApi
.getLastLocation(apiClient)
方法必须在onConnected方法中调用。但是,如果我没有检查用户授予的权限,该方法将抛出错误 我的问题是,我在我的按钮的onClick方法中请求许可 我试着把
LocationServices.FusedLocationApi
.getLastLocation(apiClient)
在onClick方法内部,但它返回空对象
有没有合适的方法可以在点击按钮时向用户请求位置权限,而不是在活动的onCreate方法中,并且仍然能够获取用户的位置?我假设您正在呼叫:
mGoogleApiClient.connect();
在onStart中。它在活动启动时调用onConnected方法。您可以在请求运行时位置权限后单击按钮调用它。然后,您将能够在onConnected中获取LastLocation,并且不会遇到权限错误
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)){
mGoogleApiClient.connect();
}
else{
// ask run-time permission
}
}
}
});
希望这能有所帮助。但是,如果我没有检查用户授予的权限,该方法将抛出错误-如果你没有检查用户授予的权限,你可能会在IDE中收到警告。这只是一个IDE警告。只要您确定在此之前正在检查运行时权限,就可以了。