android - 如何获取用户在 Android 设备上安装的应用列表?

标签 android android-package-managers android-applicationinfo installed-applications

目前我正在使用以下代码:

List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);

但它会返回设备制造商和我安装的应用程序。如何限制它以便只返回我安装的应用程序?

最佳答案

// Flags: See below
int flags = PackageManager.GET_META_DATA | 
            PackageManager.GET_SHARED_LIBRARY_FILES |     
            PackageManager.GET_UNINSTALLED_PACKAGES;

PackageManager pm = getPackageManager();
List<ApplicationInfo> applications = pm.getInstalledApplications(flags);
for (ApplicationInfo appInfo : applications) {
    if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
        // System application
    } else {
        // Installed by user
    }
}

标志:

关于android - 如何获取用户在 Android 设备上安装的应用列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4598769/

相关文章:

java - "How are"Android 应用程序(Facebook 等)安装到 Android 手机?

android - 程序类型已经存在 : org. hamcrest.CoreMatchers

android - 当您使用 Intent.ACTION_DELETE 时,您如何判断用户是否真的卸载了该应用程序?

android - 尝试将新模块添加到项目中。无法读取脚本

android - 在哪里可以下载Google的android程序包? (不是应用程序)

java - 未安装应用程序的应用程序信息

android - 是否可以知道 Android 应用程序的来源(例如 Google Play)?

Android的/data/system/packages.xml cert数据

android - 如何在 2 秒后从服务器在 imageview 中更改图像?

android - ExceptionInInitializerError 物理世界