Android get Serial Number

后端 未结 6 2149
予麋鹿
予麋鹿 2020-12-11 17:26

I am trying to get the device serial number programmatically. I have used the following line:

Build.SERIAL

Which returns something like :

6条回答
  •  庸人自扰
    2020-12-11 17:50

    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.

提交回复
热议问题