1.判断应用是否安装
override fun hasInstall(packageName:String): Boolean {
super.hasInstall()
val intent = Intent()
intent.component = ComponentName(packageName, "${packageName}.MainActivity")
val pm: PackageManager = mContext.packageManager
return pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size > 0
}
2.判断应用是否在运行
/**
* 目标程序是否在运行
*/
private fun isAppAlive(packageName:String): Boolean {
val ams: ActivityManager = mContext.getSystemService(ACTIVITY_SERVICE) as ActivityManager
val runningAppProcesses = ams.runningAppProcesses
return runningAppProcesses.any {
it.processName.equals(packageName)
}
}
3.判断应用是否在前台
private fun isTopActivity(packageName:String): Boolean {
val ams: ActivityManager = mContext.getSystemService(ACTIVITY_SERVICE) as ActivityManager
val taskList: List<ActivityManager.RunningTaskInfo> = ams.getRunningTasks(1)
if (taskList.isNotEmpty()) {
val topActivity: ComponentName? = taskList[0].topActivity
topActivity?.let {
if (it.packageName.equals(packageName)) {
return true
}
}
return false
}
return false
}