Android get Serial Number
android, java
Solution
There are several ways to get that number depending on the device's manufacturer and Android version :
public static String getSerialNumber() {
String serialNumber;
try {
Class<?> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class);
serialNumber = (String) get.invoke(c, "gsm.sn1");
if (serialNumber.equals(""))
serialNumber = (String) get.invoke(c, "ril.serialnumber");
if (serialNumber.equals(""))
serialNumber = (String) get.invoke(c, "ro.serialno");
if (serialNumber.equals(""))
serialNumber = (String) get.invoke(c, "sys.serialnumber");
if (serialNumber.equals(""))
serialNumber = Build.SERIAL;
// If none of the methods above worked
if (serialNumber.equals(""))
serialNumber = null;
} catch (Exception e) {
e.printStackTrace();
serialNumber = null;
}
return serialNumber;
}
Taken from this gist.
Problem
I am trying to get the device serial number programmatically. I have used the following line: ``` Build.SERIAL ``` Which returns something like : 95b9efad04ad28 However which I go to the settings on the device, I can see that it displays a different string: Could anyone point me in the correct direction?