如何检测运行在小米 MIUI ROM 下的设备?我可以使用以下代码检测 Xiomi 设备。

String manufacturer = "xiaomi";
if (manufacturer.equalsIgnoreCase(android.os.Build.MANUFACTURER)) {
}

但是我怎样才能检测到它的 MIUI 呢?

最佳答案

  • 获取设备属性:
    adb shell getprop
    应该导致:
  • [ro.miui.cust_variant]: [x]
  • [ro.miui.has_cust_partition]: [x]
  • [ro.miui.has_handy_mode_sf]: [x]
  • [ro.miui.has_real_blur]: [x]
  • [ro.miui.mcc]: [xxx]
  • [ro.miui.mnc]: [xxx]
  • [ro.miui.region]: [x]
  • [ro.miui.ui.version.code]: [x]
  • [ro.miui.ui.version.name]: [x]
  • [ro.miui.version.code_time]: [xxx]

  • 还有一些包含 MIUI 特定属性的内容
    Class<?> c = Class.forName("android.os.SystemProperties");
    Method get = c.getMethod("get", String.class);
    String miui = (String) get.invoke(c, "ro.miui.ui.version.code"); // maybe this one or any other
    // if string miui is not empty, bingo
    
  • 或者,获取软件包列表:
    adb shell pm 列出包
    应该导致
  • 包:com.miui.system
  • 包:com.android.calendar
  • 包:com.miui.translation.kingsoft
  • 包:com.miui.virtualsim
  • 包:com.miui.compass
    ...

  • 所以你可以检查这段代码:
    //installedPackages - list them through package manager
    for (String packageName : installedPackages) {
        if (packageName.startsWith("com.miui.")) {
            return true;
        }
    }
    

    关于android - 如何在android中以编程方式检测MIUI ROM?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47610456/

    10-08 23:37