System.andからインストールされたアプリを取得し、リストビューに正常に表示する1つのアプリを開発しています。私はすべてのものをうまく手に入れました。しかし、今ここでは、私が望んでいないシステムアプリも取得しています。システムアプリのような... ブラウザ、設定、目覚まし時計のようなものなので、私は必要ありません。これをフィルタリングするにはどうすればよいですか?これを手伝ってくれませんか...
コード ::
private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {
ArrayList<PInfo> res = new ArrayList<PInfo>();
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
// Fill PackageInfo
if ((!getSysPackages) && (p.versionName == null)) {
continue;
}
PInfo newInfo = new PInfo();
newInfo.appname = p.applicationInfo.loadLabel(getPackageManager())
.toString();
newInfo.pname = p.packageName;
newInfo.versionName = p.versionName;
newInfo.versionCode = p.versionCode;
PackageManager pm = getPackageManager();
ApplicationInfo appInfo;
try {
// Get all app information in Application info
appInfo = pm.getApplicationInfo(newInfo.pname, 0);
String appFile = appInfo.sourceDir;
newInfo.size = String.valueOf(new File(appFile).length());
long installed = new File(appFile).lastModified();
newInfo.date = String.valueOf(installed);
Date dtappdate = new Date(installed);
newInfo.instdate = String.valueOf(dtappdate.toString());
} catch (NameNotFoundException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());
res.add(newInfo);
}
return res;
}