PackageManager()的使用列举相关的事件
看来这个东西应该专门开一个帖子了,发现这个包里面的东西太多,以前写的很零碎不容易找
查询系统使用的Content Providers
for (PackageInfo pack : getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS)) { ProviderInfo[] providers = pack.providers; if (providers != null) { for (ProviderInfo provider : providers) { Log.d("Example", "provider: " + provider.authority); } } } ?
class PInfo { private String appname = ""; private String pname = ""; private String versionName = ""; private int versionCode = 0; private Drawable icon; private void prettyPrint() { log(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode + "\t"); } } private void listPackages() { ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */ final int max = apps.size(); for (int i=0; i<max; i++) { apps.get(i).prettyPrint(); } } 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); 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; newInfo.icon = p.applicationInfo.loadIcon(getPackageManager()); res.add(newInfo); } return res; } ?
用这个方法来获取系统内所包含的Applications信息:
private void listPackages() { ArrayList < PInfo > apps = getInstalledApps(false); /* false = no system packages */ final int max = apps.size(); for (int i=0; i < max; i++) { apps.get(i).prettyPrint(); } } ?
01 PackageManager manager = this.getPackageManager(); 02 try { 03 04 PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0); 05 String packageName = info.packageName; 06 int versionCode = info.versionCode; 07 String versionName = info.versionName; 08 09 } catch (NameNotFoundException e) { 10 // TODO Auto-generated catch block 11 } ?
1 楼 littlenewus 2011-01-27 大哥 请习惯性的给出所需权限。 2 楼 littlenewus 2011-01-27 if ((!getSysPackages) && (p.versionName == null)) {continue ;
}
系统的应用versionName 都是null的?