Я получаю местоположение пользователя через
Location location = LocationServices.FusedLocationApi.getLastLocation(
mGoogleApiClient);
Эта строка кода находится внутри метода, и перед вызовом этого метода я проверяю разрешения для времени выполнения 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`
Теперь, как удалить это предупреждение? Я уже проверял разрешения и не хочу снова проверять, чтобы удалить это предупреждение. Я пробовал добавить @SuppressWarnings(), но не знаю, какую точную строку передать. @SuppressWarnings ({ "all" }) работает, но явно не рекомендуется.
Как удалить это предупреждение?
EDIT 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);
}
Но если я поставлю проверку разрешения внутри метода getLocation(), предупреждение исчезнет. @SuppressWarnings ({ "MissingPermission" }) не работает.
EDIT 2: Я обнаружил, что единственный способ подавить предупреждение -
Добавление этого комментария поверх этой части кода -
//noinspection ResourceType
или добавив это -
@SuppressWarnings({"ResourceType"})