获取Android设备的硬件序列号

斯托罗

我需要获取安装了我的应用的Android设备的硬件序列号。该硬件序列号是您可以看到的Settings > About Device > Status > Serial number

我虽然可以使用来获得它Settings.Secure.ANDROID_ID or android.os.Build.SERIAL,但是它们都不起作用,这意味着它们没有给我我要寻找的唯一标识符。例如android.os.Build.SERIAL,当您运行命令adb devices时,我得到了ADB上显示的唯一ID

请注意,此问题的目的不是找到其他可以帮助我的唯一标识符,而仅仅是获取设备硬件序列号。

谢谢您的帮助。

编辑:

请清楚,我不是在寻找字符串android.os.BUILD.SERIAL提供的值。我知道如何获得该价值,但我对此并不感兴趣。

我有一个三星设备,因此,它们使用的序列号与android.os.BUILD.SERIAL提供的序列号不同。

斯托罗

解决方案非常简单:

Class<?> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class, String.class);
serialNumber = (String) get.invoke(c, "sys.serialnumber", "Error");
if(serialNumber.equals("Error")) {
    serialNumber = (String) get.invoke(c, "ril.serialnumber", "Error");
}

这将为您提供大多数三星设备的序列号。我使用“ sys.serialnumber”值来获取我的SM-T210(Galaxy Tab 3)和SM-T230(Galaxy Tab 4)平板电脑的序列号,但可能与更多三星平板电脑兼容。“ ril.serialnumber”用于获取我的三星GT-I8550L(Galaxy Win)上的值。

我希望这有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章