获取Android设备的硬件序列号

时间:2014-11-05 18:12:49

标签: android settings uniqueidentifier serial-number

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

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

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

感谢您的帮助。

修改

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

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

1 个答案:

答案 0 :(得分:16)

解决方案非常简单:

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");
}

这将为您提供大多数三星设备的序列号。我使用&#34; sys.serialnumber&#34;值得到我的SM-T210(Galaxy Tab 3)和SM-T230(Galaxy Tab 4)平板电脑的序列号,但可能适用于更多的三星平板电脑。 &#34; ril.serialnumber&#34;是为了获得我的三星GT-I8550L(Galaxy Win)的价值。

我希望这会有所帮助。