【问题标题】:Get hardware serial number of Android device获取Android设备的硬件序列号
【发布时间】:2015-01-02 01:22:01
【问题描述】:

我需要获取安装了我的应用的 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 提供的序列号不同。

【问题讨论】:

  • 发布您的代码,并解释为什么您认为它不起作用
  • @FedeBucich 是它不起作用,是因为我得到了其他唯一标识符,这些标识符不是我想要的。我需要的是我可以检查设置的那个,而不是我使用 ADB 或其他唯一 ID 将设备连接到 PC 时得到的那个。
  • @Funkystein 很抱歉,但这与它无关,因为在那篇文章中他们有兴趣使用 android.os.Build.Serial,这不是我需要的唯一 ID。
  • 设置应用程序是开源的,您可能可以进入该代码以确定使用了什么。

标签: android settings uniqueidentifier serial-number


【解决方案1】:

解决方法很简单:

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) 上的值。

我希望这会有所帮助。

【讨论】:

猜你喜欢
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-21
  • 2018-10-07
  • 2010-12-06
相关资源
最近更新 更多