我正在我的应用程序中处理系统应用程序。我已经在我的应用程序中生成了 Android 设备中所有已安装应用程序的完整列表。现在我的任务是从该应用程序列表中识别系统应用程序。或者确定当前的前台应用程序是系统应用程序还是安装的应用程序?
当前使用以下代码:
PackageManager packageManager = getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> appList = packageManager.queryIntentActivities(mainIntent, 0);
Collections.sort(appList, new ResolveInfo.DisplayNameComparator(packageManager));
List<PackageInfo> packs = packageManager.getInstalledPackages(0); //PackageManager.GET_META_DATA
for(int i=0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
ApplicationInfo a = p.applicationInfo;
if ((!includeSysApps) && ((a.flags & ApplicationInfo.FLAG_SYSTEM) == 1))
{
continue;
}
apps.add(p.packageName);