欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[全网首发]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跳转到[自启动]页面全网最全适配机型解决方案(持续更新)