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,因此需要进行异常处理。

相关推荐
百锦再5 小时前
安卓无障碍脚本开发全教程
android·手机·脚本·开发·mobile·phone·无障碍
花花鱼7 小时前
android studio 开启无线调试
android·android studio
stevenzqzq8 小时前
android RecyclerView列表DiffCallback说明
android
TeleostNaCl8 小时前
Android 直接通过 app_process 启动的应用如何使用 Context
android·经验分享
努力学习的小廉10 小时前
深入了解linux系统—— 操作系统的路径缓冲与链接机制
android·linux·服务器
清霜之辰11 小时前
安卓开发用到的设计模式(2)结构型模式
android·设计模式·结构型设计模式
sg_knight11 小时前
Flutter跨平台通信实战|3步打通Android原生能力,实现底层API调用!
android·前端·javascript·flutter·跨平台·web·双向通信
白嫖不白嫖11 小时前
MySQL 8.0 和 5.7 快速生成测试数据
android·数据库·mysql
每次的天空12 小时前
Android-OkHttp与Retrofit学习总结
android·okhttp·retrofit
tmacfrank15 小时前
Android 网络全栈攻略(四)—— 从 OkHttp 拦截器来看 HTTP 协议一
android·网络·okhttp