簡體   English   中英

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

[英]how to decode android.os.Build.SERIAL?

我正在處理重復出現的序列號主題,以提供唯一的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) {
        }

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


        textReportAdmin.setText(
                sb.toString());

兩者都給出相同的值: C4F12FDD949F22F

在標簽的方框和標簽上,序列號為: RF2C202WYME

我在選項卡上工作,無法使用

    TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    String imei = telephonyManager.getDeviceId();

在我的情況下,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");

無處,我得到了貼紙上的序列號,雖然它可以被發現,系統本身能夠在“參數”,“關於”,“狀態”中顯示它(我不知道在英語,我有一個法語標簽,它是“Paramètres”,“A propos de”,“Etat”,然后是“序列號”,清晰版,如貼紙上所示。

你試過這個嗎?

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) {
 }

如果您想獲得設備背面顯示的序列號,如果您使用的是三星Galaxy Tab,那么為什么不使用'ril.serialnumber'屬性

項目已更改為您的設備應顯示的內容:

$ adb shell getprop | grep serial
[ril.serialnumber]: [RF2C202WYME]
[ro.boot.serialno]: [c4f12fdd949f22f]
[ro.serialno]: [c4f12fdd949f22f]

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

在許多設備上,設置 - >關於活動中顯示的信息是非標准的,並且不能從任何標准Android API獲得。 例如,有時會在那里顯示FCC ID,但應用程序無法使用。

此外,並不要求通過API提供的序列號是產品的“真實”序列號(即包裝上的序列號)。 只是它是獨一無二的。

所以,我認為沒有辦法做你想要的(閱讀盒子和關於活動的序列號),然后查看該產品的源代碼(如果可用),看看是否有辦法獲得該特定產品或制造商的信息。

你應該使用sys.serialnumber,有些設備有ril.serialnumber,有些設備有sys.serialnumber,所以你應該嘗試使用sys

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM