我正在通过用户的位置
Location location = LocationServices.FusedLocationApi.getLastLocation(
mGoogleApiClient);
Run Code Online (Sandbox Code Playgroud)
这行代码在方法内部,在调用此方法之前,我会检查Android运行时权限.只有当用户可以获得权限时,我才会调用此方法.代码工作得很好.
问题是Android Studio仍然在此行上显示错误,而不是在调用此函数之前已经检查过我已经检查过.
Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`
Run Code Online (Sandbox Code Playgroud)
现在我该如何删除此警告?我已经检查了权限,并且不想再次检查只是为了删除此警告.我已经尝试添加@SuppressWarnings(),但不知道要传递给它的确切字符串. @SuppressWarnings({"all"})有效,但显然不推荐.
如何删除此警告?
编辑1:这是我的确切代码 -
private void checkPermissions() {
if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED)
getLocation(); //Method called if I have permission
}
private void getLocation() {
//Android studio shows warning at this line.
Location location = LocationServices.FusedLocationApi.getLastLocation(
mGoogleApiClient);
}
Run Code Online (Sandbox Code Playgroud)
但是如果我将权限检查放在getLocation()方法中,那么警告就会消失.@SuppressWarnings({"MissingPermission"})无效. …
android suppress-warnings android-studio runtime-permissions