Почему Android Studio говорит WrongConstant, когда значение не используется - PullRequest
0 голосов
/ 23 апреля 2020

Этот бит кода

int notifyFilter = -1;
if (   (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
    && (m_notifManager != null)
    && m_notifManager.isNotificationPolicyAccessGranted())
{
    notifyFilter = m_notifManager.getCurrentInterruptionFilter();
}

получает ошибку WrongConstant при втором назначении для notifyFilter. Я знаю, что могу подавить это с помощью

@SuppressLint("WrongConstant")

(хотя это раздражающе должно применяться ко всему методу, а не только к утверждению, на которое он жалуется), но почему я получаю ошибку здесь?

notifyFilter назначается, а не используется в качестве параметра в вызове метода, что, как утверждает WrongConstant, обнаруживает (Android Проверки Lint ). До назначения было -1, но это не так, если недопустимое значение -1 никогда не передается в setInterruptionFIlter (). Позже я проверяю недопустимое значение -1, чтобы избежать вызова setInterruptionFIlter (), если мое приложение работает на версии Android, которая не поддерживает его, или если у него нет разрешения на это.

При просмотре Android Studio 3.6.3, которая является последней выпущенной версией на момент публикации.

...