【如何管理开机自启动程序】

来源:互联网 发布:vue.js配合什么ui框架 编辑:程序博客网 时间:2024/06/02 13:11

先写一个程序看看手机里面安装的app那些具有开机自启权限

有很多方法:这里是通过packagemnager 实现

public class checkthestartslef extends Activity {    ListView listView;    String boot_permission = "android.permission.RECEIVE_BOOT_COMPLETED";    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.listview_main);        listView = (ListView) findViewById(R.id.list);        // 添加适配器Adapter        listView.setAdapter(new ArrayAdapter<String>(this,                android.R.layout.simple_list_item_1, getAppInfo()));    }    // 拿到开机启动app的信息    private String[] getAppInfo() {        int count = 0;// 记录有多少个app        // 拿到已安装程序的信息        List<ApplicationInfo> allAppList = getPackageManager()                .getInstalledApplications(0);        // 新建一个ArrayList数组        List<String> autoBootAppList = new ArrayList<String>();        // 遍历已安装的app如果app的权限里含有boot_permission且不为系统app        for (ApplicationInfo appinfo : allAppList) {            if (PackageManager.PERMISSION_GRANTED == getPackageManager()                    .checkPermission(boot_permission, appinfo.packageName)) {                if ((appinfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) {                    autoBootAppList.add(appinfo.packageName);                }            } else {                autoBootAppList.add("第" + count + "个app");                count++;            }        }        return autoBootAppList.toArray(new String[autoBootAppList.size()]);    }}

开机启动广播

  • 1.extends broadcast
  • 2.注册/动静
  • 3.声明权限
  • 4.有序广播但是 不可中断

停止广播的方法

  • 1.设置app的Package stopped标志来实现

        通过forcestoppackage禁用,会停止定时器等。同时也需要system权限和系统签名
  • 2.设置recevier组件为不可用android:enable

            setApplicationEnabledSetting停用应用中所有的组件            SetComponentEnabledSetting指定组件
  • 3.kill app进程

总结:

root权限:
1.使用pm命令来禁用包含Boot_Completed
2.监控后来进程“轮训”黑名单进而kill
增大了系统消耗。

小米:解析权限的时候回将所有的接受器的优先级减1。

如果没有root权限第三方app很难拿到对系统权限的控制。反而会降低安全性和消耗资源

0 0
原创粉丝点击