三星设备运行Android的序列号

时间:2013-01-04 16:49:37

标签: android samsung-mobile

我有三星Galaxy Tab 2.0(7“)

此设备背面是格式的序列号

RF3C6000MNA

当我在我的设备上进行设置,并选择关于设备 - >状态 - >序列号时,也会显示此编号。

但是,我不能找到一种以编程方式提取此数字的方法。

我看过很多关于提取序列号的文章,但这会返回一个完全不同的数字。 (使用android.os.Build.SERIAL)

我已经提取了IMEI和MAC地址,因此我不需要代码。

3 个答案:

答案 0 :(得分:30)

public static String getManufacturerSerialNumber() {
  String serial = null; 
  try {
      Class<?> c = Class.forName("android.os.SystemProperties");
      Method get = c.getMethod("get", String.class, String.class);
      serial = (String) get.invoke(c, "ril.serialnumber", "unknown");
  } catch (Exception ignored) {}
  return serial;
}

编辑:自这个答案以来已经有一段时间了,这里有几个更新点:

  • OP询问 Galaxy Tab 2 ,确实答案是ril.serialnumber(即使对于非3G模型 - 请参阅此gist)。根据Himanshu的回答 Galaxy Tab 3 使用sys.serialnumber(也由this answer支持)。 sys.serialnumber对于平板电脑更有意义,因为ril.*代表无线接口层,大多数平板电脑都没有配备(ril.serialnumber,这对手机来说更有意义)。
  • 没有用于获取设备序列号的标准API(即包装上的序列号 - 不要混淆Settings.Secure.ANDROID_ID或分散在各处的各种其他“唯一”标识符API)。这意味着由制造商决定存储设备序列的位置(如果有的话)。在 S3 Mini ril.serialnumber NexusOne ro.serialnogist), Galaxy Tab 2 它是ril.serialnumber Galaxy Tab 3/4 它是sys.serialnumber联想选项卡它是none of the above。在查找设备序列时,这些设置似乎是常见的嫌疑,但不应该被视为理所当然,因此,不应依赖它来跟踪独特的应用程序安装。

答案 1 :(得分:2)

您可以在adb shell上使用getprop命令,并检查哪个文件包含正确的序列号。很多时候,序列号位于不同的文件中,代码必须是特定于设备的。

对于samung Tab 3,您可以使用以下代码:

try {

        Class<?> c = Class.forName("android.os.SystemProperties");

        Method get = c.getMethod("get", String.class, String.class);

        serialnum = (String) (get.invoke(c, "sys.serialnumber", "unknown"));

    } catch (Exception ignored) {

        serialnum = "unknown";

    }

答案 2 :(得分:0)

我们为产品使用Build类。看看这是否匹配:http://developer.android.com/reference/android/os/Build.html#SERIAL