android - 即使检查正确,我也会不断收到弃用的 API 警告

标签 android android-studio deprecated

我正在开发一个 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();
    }
}

最佳答案

你需要这样的东西:

@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();
}

隐藏所有不正确的警告

关于android - 即使检查正确,我也会不断收到弃用的 API 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50675122/

相关文章:

Android:帮助创建一个按钮,它产生与按下方向键上的向下键相同的结果? (第2部分)

java - Eclipse 删除 AndroidManifest.xml 中的 Activity ?

android - 为android sdk设置环境变量时权限被拒绝

android - 无法在 intellij idea 的设计选项卡中看到 View

java - 在 AndroidStudio 的原始文件夹中播放 mp3 文件时,如何修复 java.lang.NullPointerException?

java - Android Studio - AlertDialog 中的 DatePicker,空对象引用

ios - 如何下载已弃用的 pod

ruby-on-rails - value_to_boolean 已弃用;什么是好的替代品?

php - Android通过PHP向MySQL数据库插入数据

c++ - libwayland 的功能已弃用——替代方案?