我有一个三星j5。我使用的序列号可以在Android的每个设备的唯一ID像序列号
设置>关于设备>状态>序列号。
它的值为RF8H933KWLF
,我认为它是唯一的。现在我将这个值注册到我的数据库中,当我运行我的应用程序时,我发送一个请求到我的数据库,并检查我使用的设备是否在我的数据库中注册。我得到的设备序列号的方式是:
String serialNumber = "";
try {
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");
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
对于我的设备,我可以得到正确的值。
我的问题是为什么当我使用不同的设备时,我无法获得我在Serial Number
中看到的值。
- 我尝试在设备上,并返回
Error
。 - 什么是我可以使用的替代ID,这对设备是唯一的(即使设备恢复或生根也不会改变)。
- 我需要的ID是可见的,所以我可以将它注册到我的数据库以允许访问应用程序的登录。
我试过这个ID,但作为文档说,它将改变设备恢复或植根时。我不想要那个。我也没有办法得到这个ID,以便我可以注册它不像序列号,我可以去'设置>关于设备>状态>序列号.'然后将该值存储到数据库 – Giant
提到这个问题,有很多其他方式你可以得到设备ID,检查所有答案一次,至少有一个应该工作 – Redman
我只有一个问题,我可以在哪里看到设备的价值?我需要先看到它,所以我可以注册到我的数据库。 – Giant