Android硬件获取序列号sn适配Android9+

在Android 9及以上版本中,由于隐私和安全性的考虑,获取设备序列号(Serial Number)的方式发生了改变。在Android 9及以上版本中,android.os.Build.SERIAL可能会返回一个空字符串或者包含"unknown"等信息,而不再是设备的真实序列号。

为了适配Android 9以上的硬件,可以使用以下方法获取设备的序列号:

java 复制代码
public String getDeviceSN() {
    String serialNumber;
    
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        try {
            serialNumber = Build.getSerial();
        } catch (SecurityException e) {
            e.printStackTrace();
            serialNumber = "unknown";
        }
    } else {
        serialNumber = Build.SERIAL;
    }

    return dev_sn.equals("prod") ? serialNumber : dev_sn;
}

在Android 9及以上版本,可以使用Build.getSerial()方法来获取设备的序列号。请注意,这个方法可能会抛出SecurityException,因此需要进行异常处理。

相关推荐
修炼者2 分钟前
【Android 进阶】别再强转 Context 了!手把手教你优雅解耦 View 与 Activity
android·android studio
x***010610 分钟前
SpringSecurity+jwt实现权限认证功能
android·前端·后端
程序员江同学1 小时前
线下活动|2025 Kotlin 中文开发者大会北京分会场
android·kotlin
李坤林2 小时前
Android Vulkan 开启VK_GOOGLE_DISPLAY_TIMING 后,一个vsync 会释放两个imageBuffer现象分析
android·vulkan
Jerry2 小时前
Compose 状态思维
android
k***45992 小时前
MySQL----case的用法
android·数据库·mysql
r***86984 小时前
Plugin ‘mysql_native_password‘ is not loaded`
android·数据库·mysql
v***59834 小时前
MySQL-mysql zip安装包配置教程
android·mysql·adb
不用89k4 小时前
Android无法区分USB摄像头是哪一个
android
ljt27249606615 小时前
Compose笔记(五十七)--snapshotFlow
android·笔记·android jetpack