首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

PackageManager()的施用列举相关的事件

2012-09-02 
PackageManager()的使用列举相关的事件看来这个东西应该专门开一个帖子了,发现这个包里面的东西太多,以前

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的?

热点排行