日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 判断手机rom,Android判断手机ROM 手机os

發布時間:2024/1/1 Android 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 判断手机rom,Android判断手机ROM 手机os 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有時候需要判斷手機系統的ROM,檢測ROM是MIUI、EMUI還是Flyme,可以使用getprop命令,去系統build.prop文件查找是否有對應屬性來判斷是什么ROM。

build.prop的介紹可以看Android build.prop簡介

1. 小米

小米官方文檔:如何識別小米設備/MIUI系統

判斷小米設備

Build.MANUFACTURER是否為Xiaomi

查詢build.prop是否有ro.miui.ui.version.name屬性

ps:Build.MODEL是機器型號,小米2是MI 2

判斷MIUI版本

ro.miui.ui.version.name返回V5表示是MIUI V5系統,V6表示MIUI V6系統

2. 華為

查詢build.prop是否有ro.build.version.emui屬性

3. OPPO

查詢build.prop是否有ro.build.version.opporom屬性

4. VIVO

查詢build.prop是否有ro.vivo.os.version屬性

5. 錘子

查詢build.prop是否有ro.smartisan.version屬性

6. 魅族

Build.DISPLAY是否包含“FLYME”字符串

7. 360

Build.MANUFACTURER為“QIKU”或“360”

8. 樂視

待測試。。。

如果官方沒有給出用哪個屬性判斷,就要自己來決定了,一般系統ROM登記都有一個內部版本號,是個不錯的選擇,例如小米ro.miui.ui.version.code,華為ro.build.hw_emui_api_level

附代碼:

public class Rom {

private static final String TAG = "Rom";

public static final String ROM_MIUI = "MIUI";

public static final String ROM_EMUI = "EMUI";

public static final String ROM_FLYME = "FLYME";

public static final String ROM_OPPO = "OPPO";

public static final String ROM_SMARTISAN = "SMARTISAN";

public static final String ROM_VIVO = "VIVO";

public static final String ROM_QIKU = "QIKU";

private static final String KEY_VERSION_MIUI = "ro.miui.ui.version.name";

private static final String KEY_VERSION_EMUI = "ro.build.version.emui";

private static final String KEY_VERSION_OPPO = "ro.build.version.opporom";

private static final String KEY_VERSION_SMARTISAN = "ro.smartisan.version";

private static final String KEY_VERSION_VIVO = "ro.vivo.os.version";

private static String sName;

private static String sVersion;

public static boolean isEmui() {

return check(ROM_EMUI);

}

public static boolean isMiui() {

return check(ROM_MIUI);

}

public static boolean isVivo() {

return check(ROM_VIVO);

}

public static boolean isOppo() {

return check(ROM_OPPO);

}

public static boolean isFlyme() {

return check(ROM_FLYME);

}

public static boolean is360() {

return check(ROM_QIKU) || check("360");

}

public static boolean isSmartisan() {

return check(ROM_SMARTISAN);

}

public static String getName() {

if (sName == null) {

check("");

}

return sName;

}

public static String getVersion() {

if (sVersion == null) {

check("");

}

return sVersion;

}

public static boolean check(String rom) {

if (sName != null) {

return sName.equals(rom);

}

if (!TextUtils.isEmpty(sVersion = getProp(KEY_VERSION_MIUI))) {

sName = ROM_MIUI;

} else if (!TextUtils.isEmpty(sVersion = getProp(KEY_VERSION_EMUI))) {

sName = ROM_EMUI;

} else if (!TextUtils.isEmpty(sVersion = getProp(KEY_VERSION_OPPO))) {

sName = ROM_OPPO;

} else if (!TextUtils.isEmpty(sVersion = getProp(KEY_VERSION_VIVO))) {

sName = ROM_VIVO;

} else if (!TextUtils.isEmpty(sVersion = getProp(KEY_VERSION_SMARTISAN))) {

sName = ROM_SMARTISAN;

} else {

sVersion = Build.DISPLAY;

if (sVersion.toUpperCase().contains(ROM_FLYME)) {

sName = ROM_FLYME;

} else {

sVersion = Build.UNKNOWN;

sName = Build.MANUFACTURER.toUpperCase();

}

}

return sName.equals(rom);

}

public static String getProp(String name) {

String line = null;

BufferedReader input = null;

try {

Process p = Runtime.getRuntime().exec("getprop " + name);

input = new BufferedReader(new InputStreamReader(p.getInputStream()), 1024);

line = input.readLine();

input.close();

} catch (IOException ex) {

Log.e(TAG, "Unable to read prop " + name, ex);

return null;

} finally {

if (input != null) {

try {

input.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

return line;

}

}

//原貼地址:http://www.jianshu.com/p/ba9347a5a05a

總結

以上是生活随笔為你收集整理的android 判断手机rom,Android判断手机ROM 手机os的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。