我需要获取安装了我的应用的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] 删除。
我来说两句