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

相关推荐
Yang-Never2 小时前
Kotlin->Kotlin协程的取消机制
android·java·开发语言·kotlin·android studio·idea
嶂蘅5 小时前
【调研】Android app动态更新launcher_icon
android·前端·程序员
woodWu5 小时前
Android 稳定性(二):治理思路篇
android
阿豪元代码5 小时前
彻底掌握 Android14 Vsync 原理
android
parade岁月5 小时前
uniapp Android 原生插件开发-Module扩展为例-从开发到测试到部署到uniapp项目
android·uni-app
molong9315 小时前
Android中Activity
android
Sinyu10125 小时前
Flutter 动画实战:绘制波浪动效详解
android·前端·flutter
sunly_6 小时前
Flutter:文章详情页,渲染富文本
android·javascript·flutter
那年星空6 小时前
Flutter 3.x 版本升级实战:让老项目焕发新生
android·flutter·架构
两水先木示8 小时前
【Unity3D】导出Android项目以及Java混淆
android·java混淆