关于Android自启动管理的相关知识点
1.自启动的实现
1.添加权限。<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
2.在xml文件里,静态注册广播接收器。
3.实现具体自启动广播接收器类代码。
2 .接收不到BOOT_COMPLETED广播的情况
1.应用处于stoped状态:安装完后没有启动(安装在/system/app/除外),或者被强制停止(看到很多帖子都说是强制关闭,有误解:认为直接kill进程会进入停止状态,其实是设置应用管理里面的“强制停止”)。是接收不到系统广播的(有的说是从3.1开始)。
2.应用安装在SD卡上,系统启动,发送BOOT_COMPLETED广播后,才会加载SD卡
3.其它广播来代替BOOT_COMPLETED
1.SD卡挂载广播:
<intent-filter ><action android:name="android.intent.action.MEDIA_MOUNTED" /><action android:name="android.intent.action.MEDIA_UNMOUNTED" /><data android:scheme="file" ></data></intent-filter>
2.网络状态
4.自启动管理
1.pm disable-user/enable yourPackName/appName
但是呢这个有个问题,程序被完全禁止了。
2.通过setComponentEnabledSetting 去进行控制。
360等管理软件自启管理动应该是通过setComponentEnabledSetting 去实现的,但不明白如何拥有权限去控制的?望有知道的人可以告知下。为什么说360等控制自启动软件是通过setComponentEnabledSetting 实现的呢?我是这么测试的:
先安装个自启动的测试app(里面写了用setComponentEnabledSetting 把自己的广播接收Receiver激活的功能代码), 测试自启动成功后。
再用360把自启动给关掉。手机重启测试app已经无法自启动。
这时手动打开测试APP,运行激活广播接收器的代码(setComponentEnabledSetting )。
重启手机,自启动成功。
激活代码:
/* 激活receiver* @param* context 上下文* name 要激活的receiver的名字--要带包名例:com.test.TimeReceiver*/public void decide(Context context,String name){ pm=context.getPackageManager();mComponentName=new ComponentName(context,name);if(pm.getComponentEnabledSetting(mComponentName)!=1){pm.setComponentEnabledSetting(mComponentName,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP); }}
测试方法如果有问题忘指正,所以最后的结果是虽然不知道如何去控制别人的自启动,但还是可以保证自己的自启动接收器在激活状态。
5.不能静态注册的广播
1.android.intent.action.SCREEN_ON
2.android.intent.action.SCREEN_OFF
3.android.intent.action.BATTERY_CHANGED
4.android.intent.action.CONFIGURATION_CHANGED
5.android.intent.action.TIME_TICK
关于Android自启动管理的相关知识点相关推荐
- android管理自启动,Android自启动管理原理
垃圾电话,我无法在互联网上使用优化软件的许,它占用了过多的内存. 我要编写一个自启动管理软件. 通常在Internet上进行搜索,您可以使用PackageManager软件包获取所有应用程序的列表,然 ...
- Android 实现密码键盘的相关知识点
一.前言 由于我们是做金融相关的,对账户的密码输入为了安全,实现相应的保护测试,决定自己实现密码键盘替代系统的自带输入键盘.为什么要使用密码安全键盘呢,出于以下几个原因: 1. 第三方的键盘输入密码, ...
- Android横竖屏切换相关知识点
转载自:http://www.cnblogs.com/franksunny/p/3714442.html (老样子,图片啥的详细文档,可以下载后观看 http://files.cnblogs.com/ ...
- Android中手机定位相关知识点汇总
1.手机定位分类 根据不同的定位方式,手机定位又分为卫星定位和网络定位两大类. 2.卫星定位服务提供系统 卫星定位服务由几个全球卫星导航系统提供,主要包括美国GPS,俄罗斯格洛纳斯,中国北斗. 3.卫 ...
- Android功耗(16)---自启动管理
Android性能优化 -- 自启动管理 自启动管理简介 Android手机上安装的很多应用都会自启动,占用资源越来越多,造成系统卡顿等现象.良好的自启动管理方案管理后台自启动和开机自启动,这样就可以 ...
- Android性能优化 ---(6)自启动管理
自启动管理简介 Android手机上安装的很多应用都会自启动,占用资源越来越多,造成系统卡顿等现象.良好的自启动管理方案管理后台自启动和开机自启动,这样就可以节约内存.优化系统流畅性等. 自启动管理流 ...
- Android 系统(203)---Android包管理机制(一)PackageInstaller的初始化
Android包管理机制(一)PackageInstaller的初始化 转自:https://blog.csdn.net/itachi85/article/details/81024903 前言 包管 ...
- Android权限管理之Permission权限机制及使用
前言: 最近突然喜欢上一句诗:"宠辱不惊,看庭前花开花落:去留无意,望天空云卷云舒." 哈哈~,这个和今天的主题无关,最近只要不学习总觉得生活中少了点什么,所以想着围绕着最近面试过 ...
- 并发与多线程相关知识点梳理
文章目录 并发和并行的概念 如何保证线程安全 1. 数据单线程内可见 2. 只读对象 3. 线程安全类 4. 同步与锁机制 什么是锁 线程同步 引用类型 ThreadLocal LeetCode 相关 ...
- Android电源管理之系统休眠
1. 概述 设备的休眠是功耗分析中的重要篇章,有些问题经常会涉及到系统无法休眠,经常被唤醒等情况.在这里将从代码角度来分析下Android系统休眠和唤醒的机制,而本篇将着重阐述休眠机制. Andr ...
最新文章
- 未来已来:全球XR产业洞察
- ×××(虚拟专用网)服务实验介绍
- 自动规避代码陷阱——自定义Lint规则
- Linux 设备驱动开发 —— Tasklets 机制浅析
- 浅入浅出理解傅里叶变换
- 下一步linux命令bzip,linux基础命令---bzip2
- 设计灵感|如何让你的海报更具现代感?
- Linux系统初学者指南,Linux系统新手入门指南(二)
- 《Flutter 从0到1构建大前端应用》读后感—第5章【动画】
- mysql2005中文版_SQL Server 2005 sp4 简体中文完整免费版下载
- 希尔密码_希尔密码| 网络安全
- js根据身份证获取性别、年龄、出生日期及根据出生日期获取年龄
- [luogu4234]最小差值生成树
- BLE广播包4种类型
- 【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问...
- 鼠标右键无反应解决方法
- 深圳CPDA|如何着手商业数据分析?
- [转]华为web安全原则
- 重磅!“集成电路”正式成为一级学科!
- 0502微积分基本公式-定积分
热门文章
- mysql计算工作日函数_SQL实现工作日计算_MySQL
- 银行等单位工作日计算的实现
- linux 对战平台,【浩方对战平台和搜狗输入法 For Linux哪个好用】浩方对战平台和搜狗输入法 For Linux对比-ZOL下载...
- csgo星空天空代码_csgo天空背景怎么改
- Emacs-057-hippie-expand使用
- (六)jmeter接口自动化难点系列---jmeter使用base64解密
- html下载链接引入element-ui
- UiPath如何下载
- 算法:JavaScript实现 三色旗 代码详解
- python处理csv文件缺失值_用Python处理数据集中的缺失值