如何解码android.os.Build.SERIAL?

chr*_*e46 4 java android serial-number

我正在处理重复出现的序列号主题,以提供唯一的ID.

我试试这个:

       String serial = null; 

        try {
            Class<?> c = Class.forName("android.os.SystemProperties");
            Method get = c.getMethod("get", String.class);
            serial = (String) get.invoke(c, "ro.serialno");
        } catch (Exception ignored) {
        }
Run Code Online (Sandbox Code Playgroud)

        StringBuilder sb = new StringBuilder();
        sb.append("SERIAL ").append(android.os.Build.SERIAL).append("\n");


        textReportAdmin.setText(
                sb.toString());
Run Code Online (Sandbox Code Playgroud)

两者都给出相同的值: C4F12FDD949F22F

在标签的方框和标签上,序列号为: RF2C202WYME

我在选项卡上工作,无法使用

    TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    String imei = telephonyManager.getDeviceId();
Run Code Online (Sandbox Code Playgroud)

在我的情况下,IMEI是空的.

SERIAL是我所需要的,但我需要它在标签后面的条形码贴纸上显示的清晰版本.

我想这有可能,因为,当进入系统应用程序,并查看设备的状态,它显示清楚...

如何将android.os.Build.SERIAL返回的值转换为人类可见的值?

EDITION:我也查了一下:

        sb.append("PRODUCT ").append(android.os.Build.PRODUCT).append("\n");
        sb.append("BOARD ").append(android.os.Build.BOARD).append("\n");
        sb.append("BOOTLOADER ").append(android.os.Build.BOOTLOADER).append("\n");
        sb.append("BRAND ").append(android.os.Build.BRAND).append("\n");
        sb.append("CPU_ABI ").append(android.os.Build.CPU_ABI).append("\n");
        sb.append("CPU_ABI2 ").append(android.os.Build.CPU_ABI2).append("\n");
        sb.append("DEVICE ").append(android.os.Build.DEVICE).append("\n");
        sb.append("DISPLAY ").append(android.os.Build.DISPLAY).append("\n");
        sb.append("FINGERPRINT ").append(android.os.Build.FINGERPRINT).append("\n");
        sb.append("HARDWARE ").append(android.os.Build.HARDWARE).append("\n");
        sb.append("HOST ").append(android.os.Build.HOST).append("\n");
        sb.append("ID ").append(android.os.Build.ID).append("\n");
        sb.append("MANUFACTURER ").append(android.os.Build.MANUFACTURER).append("\n");
        sb.append("MODEL ").append(android.os.Build.MODEL).append("\n");
        sb.append("PRODUCT ").append(android.os.Build.PRODUCT).append("\n");
        sb.append("RADIO ").append(android.os.Build.RADIO).append("\n");
        sb.append("SERIAL ").append(android.os.Build.SERIAL).append("\n");
        sb.append("TAGS ").append(android.os.Build.TAGS).append("\n");
        sb.append("TIME ").append(android.os.Build.TIME).append("\n");
        sb.append("TYPE ").append(android.os.Build.TYPE).append("\n");
        sb.append("USER ").append(android.os.Build.USER).append("\n");
Run Code Online (Sandbox Code Playgroud)

无处,我得到了贴纸上的序列号,虽然它可以被发现,系统本身能够在"参数","关于","状态"中显示它(我不知道在英语,我有一个法语标签,它是"Paramètres","A propos de","Etat",然后是"序列号",清晰版,如贴纸上所示.

小智 6

如果您想获得设备背面显示的序列号,并且您使用的是三星 Galaxy Tab,那么为什么不使用“ril.serialnumber”属性

项目更改为您的设备应显示的内容:

$ adb shell getprop | grep serial
[ril.serialnumber]: [RF2C202WYME]
[ro.boot.serialno]: [c4f12fdd949f22f]
[ro.serialno]: [c4f12fdd949f22f]
Run Code Online (Sandbox Code Playgroud)

Pre-jellybean 'ro.boot.serialno' 不存在


Jon*_*ono 5

你试过这个吗?

String serial = null; 

try {
     Class<?> c = Class.forName("android.os.SystemProperties");
     Method get = c.getMethod("get", String.class);
     serial = (String) get.invoke(c, "ril.serialnumber");
 } catch (Exception ignored) {
 }
Run Code Online (Sandbox Code Playgroud)