android koltin实现判断应用是否安装,启动,在前台

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
    }

猜你喜欢

转载自blog.csdn.net/github_37610197/article/details/125302671