List<PackageInfo> packageInfos = getPackageManager().getInstalledPackages(0);
List<PackageInfo> myPackageInfos = new ArrayList<PackageInfo>();
for (int i = 0; i < packageInfos.size(); i++)
{
PackageInfo packageInfo = packageInfos.get(i);
// 过滤掉系统应用
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0)
{
myPackageInfos.add(packageInfo);
}
}
***************注意: 对 packageInfos 进行遍历的时候 如果使用 for each,则会出现 java.util.ConcurrentModificationException 异常。