我有三星 Galaxy Tab 2.0 (7")
该设备的背面是格式的序列号
RF3C6000MNA
当我进入设备的设置,选择关于设备->状态->序列号时,也会出现此编号。
但是,我无法找到以编程方式提取此数字的方法。
我看过很多关于提取序列号的文章,但这会返回一个完全不同的数字。(使用 android.os.Build.SERIAL)
我已经提取了 IMEI 和 MAC 地址,所以我不需要代码。
我有三星 Galaxy Tab 2.0 (7")
该设备的背面是格式的序列号
RF3C6000MNA
当我进入设备的设置,选择关于设备->状态->序列号时,也会出现此编号。
但是,我无法找到以编程方式提取此数字的方法。
我看过很多关于提取序列号的文章,但这会返回一个完全不同的数字。(使用 android.os.Build.SERIAL)
我已经提取了 IMEI 和 MAC 地址,所以我不需要代码。
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;
}
编辑:这个答案已经有一段时间了,这里有几个更新点:
ril.serialnumber
(即使对于非 3G 型号 - 请参阅此要点)。根据Himanshu's answer Galaxy Tab 3 uses sys.serialnumber
(也支持this answer)。代表Radio Interface Layersys.serialnumber
对平板电脑更有意义,大多数平板电脑都没有配备(分别对手机更有意义)。ril.*
ril.serialnumber
Settings.Secure.ANDROID_ID
散布在 API 中的各种其他“唯一”标识符混淆)。这意味着由制造商决定在哪里存储设备序列号(如果有的话)。在S3 Mini上是ril.serialnumber
,在NexusOne上是ro.serialno
(要点),在Galaxy Tab 2上是ril.serialnumber
,在Galaxy Tab 3/4上是sys.serialnumber
,在Lenovo Tab上不是以上. 在查找设备序列时,这些设置似乎是常见的嫌疑人,但不应被视为理所当然,因此不应依赖于跟踪独特的应用程序安装。You can use the getprop
command on the adb shell and check yourself that which of the files contains the correct serial number. Many times the serial number is located in different files and a code has to be device specific.
For samung Tab 3 you can use the following code:
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";
}
我们为我们的产品使用 Build 类。看看这是否匹配:http: //developer.android.com/reference/android/os/Build.html#SERIAL