首页 > 解决方案 > Android 使用 FLAG ApplicationInfo.FLAG_STOPPED 获取正在运行的应用程序不起作用

问题描述

当我运行以下功能时,我遇到了 MiUi SO 的问题。

fun getAppsThatCanBeStopped(context: Context): List<String> {
    return with(ArrayList<String>()) {
        addAll(
            context.packageManager.getInstalledApplications(PackageManager.GET_META_DATA)
                .filter { (it.flags and ApplicationInfo.FLAG_STOPPED == 0) and (it.flags and ApplicationInfo.FLAG_SYSTEM == 0) }
                .map { it.packageName }
        )
        this@with
    }
}

问题仅在于 MiUi 所以所有应用程序都返回,FLAG ApplicationInfo.FLAG_STOPPED 它不被满足。
应仅返回未停止且不是系统应用的应用。

有什么建议么?

标签: androidkotlinxiaomimiui

解决方案


推荐阅读