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
    }

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐