【问题标题】:To filter out unwanted system apps from the OEM in android在 android 中过滤掉来自 OEM 的不需要的系统应用程序
【发布时间】:2020-08-24 23:22:28
【问题描述】:

如何获取我的RecyclerView 的非系统应用列表?

我想过滤我的列表以不包括系统应用

  • 系统应用的当前应用计数是353,但应该在15-20左右
  • 我使用packageManager.getInstalledPackages(0) 来获取设备中所有已安装的软件包,并区分我使用过的系统应用程序和第三方应用程序 applicationInfo.flagspackage.ApplicationInfo.FLAG_SYSTEM)==0
  • 这是ScreenShot

请帮忙!!

感谢任何语言,javakotlin。 提前致谢..????

【问题讨论】:

  • 除了“不想要的”之外,您在列表中需要和不需要的标准是什么?例如,您是否尝试创建启动器?如果是这样,getInstalledPackages() 不是正确的方法。

标签: java android android-studio kotlin android-fragments


【解决方案1】:

可以通过launch intent 来识别非系统应用程序 如果应用没有启动意图,那么它是系统应用check

ArrayList<ApplicationInfo> thirdPartyApps = new ArrayList<>();
PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for(ApplicationInfo packageInfo:packages){
    if( pm.getLaunchIntentForPackage(packageInfo.packageName) != null ){
                String currAppName = pm.getApplicationLabel(packageInfo).toString();
               //This app is a non-system app
               thirdPartyApps.add(packageInfo);
    }
    else{
        //System App
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 2011-08-08
    • 2018-06-20
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多