国外photoshop素材网站,中国商标官网入口,vs用户登录注册网站建设代码,广州城市建设档案网站近期开发上线一个常驻app#xff0c;项目已上线#xff0c;今天随笔记录一下静默安装相关内容。我分三篇静默安装#xff08;root版#xff09;、静默安装#xff08;无障碍版#xff09;、监听系统更新、卸载、安装。 先说说我的项目需求#xff1a;要求app一直运行项目已上线今天随笔记录一下静默安装相关内容。我分三篇静默安装root版、静默安装无障碍版、监听系统更新、卸载、安装。 先说说我的项目需求要求app一直运行通过指令进行自动安装并在安装成功后自动开启。行业人事都了解非root权限不可能无声无息的完成此要求。我分两步完成了此功能开发。今天记录一下root权限下实现静默安装app。 本文通过监听系统广播的方式实现静默安装后的自启动。
简单介绍一下相关广播
ACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上数据包括包名最新安装的包程序不能接收到这个广播
ACTION_PACKAGE_REPLACED 一个新版本的应用安装到设备替换之前已经存在的版本
ACTION_PACKAGE_CHANGED 一个已存在的应用程序包已经改变包括包名
ACTION_PACKAGE_REMOVED 一个已存在的应用程序包已经从设备上移除包括包名正在被安装的包程序不能接收到这个广播
ACTION_PACKAGE_RESTARTED 用户重新开始一个包包的所有进程将被杀死所有与其联系的运行时间状态应该被移除包括包名重新开始包程序不能接收到这个广播
ACTION_PACKAGE_DATA_CLEARED 用户已经清楚一个包的数据包括包名清除包程序不能接收到这个广播
自定义广播
// 自定义广播
class BootService : BroadcastReceiver(){override fun onReceive(p0: Context?, p1: Intent?) {p1?.let {val action it.actionwhen(action){Intent.ACTION_PACKAGE_REPLACED,Intent.ACTION_PACKAGE_REPLACED -{p0?.let {con - {// 启动appval intent con.packageManager.getLaunchIntentForPackage(con.packageName)intent?.flags Intent.FLAG_ACTIVITY_NEW_TASKcon.startActivity(intent)}}}else - {}}}}
}注册自定义的广播
receiverandroid:namecom.zhujing.nadedemospace.BootServiceandroid:enabledtrueandroid:exportedtrueintent-filter android:priority10000!--监听开机--action android:nameandroid.intent.action.BOOT_COMPLETED /category android:nameandroid.intent.category.DEFAULT //intent-filterintent-filter!--监听关机--action android:nameandroid.intent.action.ACTION_SHUTDOWN /action android:nameandroid.intent.action.REBOOT //intent-filterintent-filter!--监听安装、更新、卸载--action android:nameandroid.intent.action.PACKAGE_ADDED /action android:nameandroid.intent.action.PACKAGE_REPLACED /action android:nameandroid.intent.action.PACKAGE_REMOVED /!--固定格式注意:package为固定内容不可修改--data android:schemepackage //intent-filter/receiver到此就完成了。注意 1、com.zhujing.nadedemospace.BootService最好使用全路径注册以防自定义广播注册失败 2、 data android:schemepackage / package是固定内容不可修改
静默安装相关内容更新完毕欢迎各位同学指导……