[英]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.