自启动一般都是通过监听boot complete 消息实现的

解决方案 »

  1.   

    嗯 监听boot complete可以实习 开机后自启动动。但是被禁止后  有没有一个标识用来判断这个应用的自启动状态 是被禁用还是启用呢?
      

  2.   

    pm disable 后会有标识吗?
      

  3.   

    哎  说白就是像360 autostarts 等软件  它既能列出能自启动的项目,又能再列出之前就判断是否被禁止,禁止的就显示为被禁止。  他是怎么判断的呢?
      

  4.   

    你分析的没错,状态标识绝对不是软件自己实现,而是读取系统相关属性值得到的。初步猜测和Application Manager有关,它应该会抛出一些status值,明天上班我去源码中搜搜看看。
      

  5.   


    终于找到了至少我用着暂时没问题,大家参考一下吧。
    ComponentName mComponentName = new ComponentName("com.xx","com.xx.receivers.BootReceiver");xx就是软件名字,然后后面就是一般用来接收开机完成广播的组件名称。
    int a = getPackageManager().getComponentEnabledSetting(mComponentName);会有4个状态,0默认 1可用 2禁止 3user disable
      

  6.   


    哇哇哇 好久没看这个帖子了,,系统目录data/system/package.xml里面有很多秘密
      

  7.   

    同样遇到这样的问题了,pm命令在4.0以下可以禁止开机启动,4.0以上就不行了,用setComponentEnabledSetting不行