1
我有以下代碼,它可以很好地獲取android中安裝的所有應用程序的詳細信息,但是當我使用isSystemPackage(ResolveInfo)過濾器時,它會強制關閉。如何從所有安裝的應用程序過濾非系統應用程序
try {
lView = (ListView) findViewById(R.id.list1);
PackageManager pm = this.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
{
List<ResolveInfo> list = pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);
for (ResolveInfo rInfo : list) {
if (isSystemPackage(rInfo)) {
results.add(rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
Log.w("Installed Applications", rInfo.activityInfo.applicationInfo
.loadLabel(pm).toString());
}
}
}
} catch(Exception ex) {
Toast.makeText(getApplicationContext(), ex.toString(), 4000).show();
}
它產生力關閉
isSystemPackage()的代碼是
private boolean isSystemPackage(ResolveInfo ri){
return ((ri.activityInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)!=0)?
true:false;
}
我試圖調試它,但不能能夠做到這一點。
你是比我快:) :) – Zelimir 2011-01-29 11:42:48