Я получаю устаревшее предупреждение API даже при правильной проверке - PullRequest
0 голосов
/ 04 июня 2018

Я работаю над проектом Android, и в какой-то момент в моем коде мне нужно получить серийный номер устройства.

Чтобы получить его, я использовал Build.SERIAL, который устарелс Android O .Чтобы избежать проблем, я начал использовать Build.getSerial() и создал небольшой метод для проверки версии ОС:

private static String getSerial() throws SecurityException {
    if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.O) {
        return Build.SERIAL;
    }

    return Build.getSerial();
}

Примечание. Я не проверяю разрешение READ_PHONE_STATE (требуется getSerial() метод) будет предоставлен, потому что я делаю это в начале и убедитесь, что он у меня уже есть до того, как перейдет к этому методу.

Проблема в том, что, как бы язапишите проверку ОС Android. Я получаю устаревшее предупреждение API.

Я пробовал следующее, и для всех возможных версий я получаю предупреждение Build.SERIAL

private static String getSerial() throws SecurityException {
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
        return Build.getSerial();
    }
    return Build.SERIAL;
}

private static String getDeviceUDI() throws SecurityException {
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
        return Build.getSerial();
    } else {
        return Build.SERIAL;
    }
}

private static String getDeviceUDI() throws SecurityException {
    if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.O) {
        return Build.SERIAL;
    } else {
        return Build.getSerial();
    }
}

1 Ответ

0 голосов
/ 04 июня 2018

Вам нужно что-то вроде этого:

@SuppressLint("HardwareIds")
@SuppressWarnings("deprecation")
private static String getSerial() throws SecurityException {
    if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.O) {
        return Build.SERIAL;
    }
    return Build.getSerial();
}

, чтобы скрыть все неверные предупреждения

...