每个设备的android唯一ID,如序列号

时间:2016-11-16 08:40:29

标签: android mysql uniqueidentifier

我有一个三星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中看到的价值。

  1. 我尝试使用设备并返回Error
  2. 我可以使用的替代ID是设备特有的(即使设备已恢复或生根也不会改变)。
  3. 我需要ID才能显示,所以我可以将其注册到我的数据库以允许访问应用程序的登录信息。

2 个答案:

答案 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();

希望这能解决它。 注意: - 我还没有尝试过。