我有一个三星j5。我使用的序列号可以在
中找到设置>关于设备>状态>序列号。
它的值为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
。答案 0 :(得分:0)
参考这个,您可以找到许多其他方式Is there a unique Android device ID?
import android.provider.Settings.Secure;
private String android_id = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
答案 1 :(得分:0)
您可以使用电话号码和 IMEI 号码的组合来获取唯一ID 。 您可以向用户询问电话号码,设备也可以显示IMEI号码。 要以编程方式获取IMEI号码和电话号码,请执行以下操作。
TelephonyManager teleMan = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
// get IMEI number
String imei = teleMan.getDeviceId();
//get The Phone Number
String phone = teleMan.getLine1Number();
希望这能解决它。 注意: - 我还没有尝试过。