[全网首发]MIUI系统判断自己的app是否有自启动权限(无root, 不需要申请系统权限)
程序员文章站
2022-05-10 09:39:09
...
众所周知, miui的自启动权限没有提供api (如果有就打脸了 请告诉我…) 所以不知道怎么判断自启动
这个应该是全网首发 至少目前2019-08-21 在网上百度和谷歌找不到这类代码
某日无聊反编译看了下miui的源码看到的一个可疑工具类看名字和函数名可以判断自启动. 试了下果然可以!
废话不多说, 直接上代码, 亲测可用 (MIUI10)
public static boolean isAllowAutoStart(Context context,String packageName){
try {
@SuppressLint("PrivateApi")
Method method = Class.forName("android.miui.AppOpsUtils")
.getMethod("getApplicationAutoStart", Context.class, String.class);
return (int) method.invoke(null,context,packageName) == 0; //0已允许, 1已拒绝
} catch (Exception e) {
e.printStackTrace();
}
//如果系统更新改了api可能导致没法判断
return true;
}
至于怎么跳转到自启动页面,请参考我另一篇文章
Intent跳转到[自启动]页面全网最全适配机型解决方案(持续更新)