Android 静默安装成功后自启动

近期开发上线一个常驻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.action
            when(action){
                Intent.ACTION_PACKAGE_REPLACED,Intent.ACTION_PACKAGE_REPLACED ->{
                    p0?.let {
                        con -> {
                        // 启动app
                            val intent = con.packageManager.getLaunchIntentForPackage(con.packageName)
                            intent?.flags= Intent.FLAG_ACTIVITY_NEW_TASK
                            con.startActivity(intent)
                        }
                    }
                }
                else -> {

                }
            }
        }
    }
}

注册自定义的广播

<receiver
            android:name="com.zhujing.nadedemospace.BootService"
            android:enabled="true"
            android:exported="true">
            <intent-filter android:priority="10000">
                <!--监听开机-->
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <!--监听关机-->
                <action android:name="android.intent.action.ACTION_SHUTDOWN" />
                <action android:name="android.intent.action.REBOOT" />
            </intent-filter>
            <intent-filter>
                <!--监听安装、更新、卸载-->
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_REPLACED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <!--固定格式,注意:package为固定内容,不可修改!!!-->
                <data android:scheme="package" />
            </intent-filter>
        </receiver>

到此就完成了。注意
1、com.zhujing.nadedemospace.BootService,最好使用全路径注册,以防自定义广播注册失败!!!
2、 <data android:scheme="package" /> package是固定内容,不可修改!!!

静默安装相关内容更新完毕,欢迎各位同学指导……

相关推荐

  1. Android 静默安装成功启动

    2024-03-24 08:42:03       22 阅读
  2. android启动

    2024-03-24 08:42:03       36 阅读
  3. Android启动

    2024-03-24 08:42:03       7 阅读
  4. Android静默安装一(Root版)

    2024-03-24 08:42:03       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 08:42:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 08:42:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 08:42:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 08:42:03       18 阅读

热门阅读

  1. C++ 的标准模板库(STL)常用算法介绍

    2024-03-24 08:42:03       16 阅读
  2. Python学习(二):python常用命令

    2024-03-24 08:42:03       15 阅读
  3. Superset二次开发之 配置Docker

    2024-03-24 08:42:03       14 阅读
  4. Kafka系列之:Kafka Connect REST API

    2024-03-24 08:42:03       18 阅读
  5. go实现协程池

    2024-03-24 08:42:03       17 阅读
  6. 前端框架是什么

    2024-03-24 08:42:03       16 阅读
  7. 上位机开发 halcon坐标转轴坐标

    2024-03-24 08:42:03       14 阅读
  8. 区块链与智能合约

    2024-03-24 08:42:03       16 阅读
  9. 机器翻译.

    2024-03-24 08:42:03       16 阅读
  10. 深度学习在遥感图像处理中的应用

    2024-03-24 08:42:03       18 阅读