Android 监听App安装、卸载、重装

Updated on with 1,953 views

项目中需要用到监听后台静默安装的App是否已经安装完成,静默安装参考:Android 后台静默安装App,在Android8.0之前在AndroidManifest中注册就能直接监听到广播,但是8.0之后需要在代码中动态注册才行。

在代码中注册广播

private lateinit var mPackageReceiver:PackageReceiver

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
	...

    //应用安装卸载监听
    mPackageReceiver = PackageReceiver()
    val intentFilterInstall = IntentFilter()
    intentFilterInstall.addAction(Intent.ACTION_PACKAGE_ADDED)
    intentFilterInstall.addAction(Intent.ACTION_PACKAGE_REMOVED)
    intentFilterInstall.addAction(Intent.ACTION_PACKAGE_REPLACED)
    intentFilterInstall.addDataScheme("package")
    registerReceiver(mPackageReceiver,intentFilterInstall)
}

记得在onDestroy中取消注册。

override fun onDestroy() {
        super.onDestroy()
        unregisterReceiver(mPackageReceiver)
    }

自定义广播

import android.content.Intent
import android.content.BroadcastReceiver
import android.content.Context

/**
 * 监听应用安装
 */
class PackageReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent) {
        val packageName = intent.dataString   //安装、卸载、重装的包的包名
        when(intent.action){
            // 安装
            "android.intent.action.PACKAGE_ADDED" ->{}
            // 重装
            "android.intent.action.PACKAGE_REPLACED" ->{}
            // 卸载
            "android.intent.action.PACKAGE_REMOVED" ->{}
        }

    }
}


标题:Android 监听App安装、卸载、重装
作者:yanjing
地址:https://yanjingtp.cn/articles/2022/03/01/1646118632292.html