2 * Copyright (C) 2013 Tobias Brunner
3 * Copyright (C) 2012 Christoph Buehler
4 * Copyright (C) 2012 Patrick Loetscher
5 * Hochschule fuer Technik Rapperswil
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or (at your
10 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
18 package org.strongswan.android.logic.imc.collectors;
20 import java.util.List;
22 import org.strongswan.android.logic.imc.attributes.Attribute;
23 import org.strongswan.android.logic.imc.attributes.InstalledPackagesAttribute;
25 import android.content.Context;
26 import android.content.pm.ApplicationInfo;
27 import android.content.pm.PackageInfo;
28 import android.content.pm.PackageManager;
30 public class InstalledPackagesCollector implements Collector
32 private final PackageManager mPackageManager;
34 public InstalledPackagesCollector(Context context)
36 mPackageManager = context.getPackageManager();
40 public Attribute getMeasurement()
42 InstalledPackagesAttribute attribute = new InstalledPackagesAttribute();
43 List<PackageInfo> packages = mPackageManager.getInstalledPackages(0);
44 for (PackageInfo info : packages)
46 if ((info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0 ||
47 info.packageName == null || info.versionName == null)
48 { /* ignore packages installed in the system image */
51 attribute.addPackage(info.packageName, info.versionName);