如何检测运行在小米 MIUI ROM 下的设备?我可以使用以下代码检测 Xiomi 设备。
String manufacturer = "xiaomi";
if (manufacturer.equalsIgnoreCase(android.os.Build.MANUFACTURER)) {
}
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能检测到它的 MIUI 呢?
获取设备属性: adb shell getprop 应导致:
还有一些包含 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
Run Code Online (Sandbox Code Playgroud)
或者,获取包列表: adb shell pm list packages should result with
所以你可以检查这段代码:
//installedPackages - list them through package manager
for (String packageName : installedPackages) {
if (packageName.startsWith("com.miui.")) {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
private static boolean isIntentResolved(Context ctx, Intent intent ){
return (intent!=null && ctx.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null);
}
public static boolean isMIUI(Context ctx) {
return isIntentResolved(ctx, new Intent("miui.intent.action.OP_AUTO_START").addCategory(Intent.CATEGORY_DEFAULT))
|| isIntentResolved(ctx, new Intent().setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity")))
|| isIntentResolved(ctx, new Intent("miui.intent.action.POWER_HIDE_MODE_APP_LIST").addCategory(Intent.CATEGORY_DEFAULT))
|| isIntentResolved(ctx, new Intent().setComponent(new ComponentName("com.miui.securitycenter", "com.miui.powercenter.PowerSettings")));
Run Code Online (Sandbox Code Playgroud)
}
Itents 列表取自https://github.com/dirkam/backgroundable-android
| 归档时间: |
|
| 查看次数: |
4140 次 |
| 最近记录: |