MIUI神隐模式讲解及使用

神隐模式介绍

神隐模式 是MIUI7上正式推出的一项功能,位于 设置-电量和性能中。
该入口界面如下所示:
神隐模式
可以看到MIUI对该功能做了简单描述:控制后台行为,大幅节约电量
其实就是限制app在后台的行为。
分别介绍一下神隐模式各界面。

  1. 神隐模式 主界面。
    打开/关闭神隐模式
    神隐模式主界面
  2. 神隐模式 应用配置界面
    安装的App列表
    列表界面
  3. 神隐模式 具体App配置界面
    配置App后台模式,共4种
    • 无限制
    • 智能限制后台运行
    • 后台运行超过10分钟后关闭
    • 禁止后台运行
      神隐模式app设置

代码控制跳转

用代码直接跳转到神隐模式的指定界面

跳转到神隐模式-应用配置列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
* 跳转到神隐模式-应用配置列表
*
* @param context {@link Context}
* @return {@code true} 跳转成功,{@code false} 跳转失败
*/
public static boolean toHiddenAppList(Context context) {
try {
Intent intent = new Intent("miui.intent.action.POWER_HIDE_MODE_APP_LIST");
context.startActivity(intent);
return true;
} catch (Exception ex) {
ex.printStackTrace();
return false;
}
}

跳转到神隐模式-应用配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* 跳转到神隐模式-应用配置-给定包名应用详细配置界面
* 本方法不适合用{@link android.app.Activity#startActivityForResult(Intent, int)}方法,因为无论
* 用户如何选择,返回结果均为-1。
* 测试机型红米4X,MIUI 9 7.11.2开发板
*
* @param context {@link Context}
* @param packageName 包名
* @param label 应用名
* @return {@code true} 跳转成功,{@code false} 跳转失败
*/
public static boolean toConfigApp(Context context, String packageName, String label) {
try {
Intent intent = new Intent("miui.intent.action.HIDDEN_APPS_CONFIG_ACTIVITY");
intent.putExtra("package_name", packageName);
intent.putExtra("package_label", label);
context.startActivity(intent);
return true;
} catch (Exception ex) {
ex.printStackTrace();
return false;
}
}

/**
* 跳转到神隐模式-当前应用配置
*
* @param context
* @return
*/
public static boolean toConfigApp(Context context) {
return toConfigApp(context, BuildConfig.APPLICATION_ID, context.getResources().getString(R.string.app_name));
}

ROM判断

由于神隐模式是MIUI定制的功能,所以只有在MIUI系统上有该功能,且需要MIUI7及以上版本。

接下来介绍使用shell命令获取当前ROM是否为MIUI

主要是使用了系统的Runtime.getRuntime().exec()方法。

判断ROM是否是MIUI的命令为:getprop ro.miui.ui.version.name

如果是MIUI版本,则会返回MIUI版本号。

比如,我的设备上的MIUI为:MIUI 8 7.4.27|开发版,则上述命令返回:V8

关于Shell的工具类已上传,可自行查看
ShellUtils源码

参考

跳转MIUI神隐模式列表以及具体设置界面
AndroidUtilCode

检测ROM类型

坚持原创技术分享,您的支持是对我最大的鼓励!