android 获取应用程序包名,图标,入口Activity类

最近老是用到关于程序包名,图标问题,现总结如下:


在检测应用程序是否需要升级时,首先应该获取其版本号与服务器端进行比较进行判断是否升级
Android有两个版本号标识,分别为:versionCode,(整数值代表),versionName(字符串代表)

public static int getVerCode(Context context) {
    int verCode = -1;
    try {
        verCode = context.getPackageManager().getPackageInfo(
                context.getPackageName(), 0).versionCode;
    } catch (PackageManager.NameNotFoundException e) {
        Log.e("msg", e.getMessage());
    }
    return verCode;
}

public static String getVerName(Context context) {
    String verName = "";
    try {
        verName = context.getPackageManager().getPackageInfo(
                context.getPackageName(), 0).versionName;
    } catch (PackageManager.NameNotFoundException e) {
        Log.e("msg", e.getMessage());
    }
    return verName;
}
另一种方法:

public class Info {  
    Context context ;  
    PackageManager pm ;  
    public Info(Context context) {  
        this.context = context;  
        pm = context.getPackageManager();  
    }  
    /* 
     * 获取程序 图标 
     */  
    public Drawable getAppIcon(String packname){  
      try {  
             ApplicationInfo info = pm.getApplicationInfo(packname, 0);   
             return info.loadIcon(pm);  
        } catch (NameNotFoundException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
            
        }  
    }  
      
    /* 
     *获取程序的版本号   
     */  
    public String getAppVersion(String packname){  
          
          try {  
              PackageInfo packinfo = pm.getPackageInfo(packname, 0);  
              return packinfo.versionName;  
            } catch (NameNotFoundException e) {  
                e.printStackTrace();  
                 
            }  
    }  
      
  
    /* 
     * 获取程序的名字  
     */  
    public String getAppName(String packname){  
          try {  
                 ApplicationInfo info = pm.getApplicationInfo(packname, 0);   
                 return info.loadLabel(pm).toString();  
            } catch (NameNotFoundException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
               
            }  
    }  
    /* 
     * 获取程序的权限 
     */  
    public String[] getAppPremission(String packname){  
          try {  
              PackageInfo packinfo =    pm.getPackageInfo(packname, PackageManager.GET_PERMISSIONS);  
              //获取到所有的权限   
              return packinfo.requestedPermissions;  
  
            } catch (NameNotFoundException e) {  
                e.printStackTrace();  
                 
            }  
    }  
      
      
    /* 
     * 获取程序的签名  
     */  
    public String getAppSignature(String packname){  
          try {  
              PackageInfo packinfo =    pm.getPackageInfo(packname, PackageManager.GET_SIGNATURES);  
              //获取到所有的权限   
              return packinfo.signatures[0].toCharsString();  
  
            } catch (NameNotFoundException e) {  
                e.printStackTrace();  
                
            }  
    }  





   
posted @ 2012-08-11 18:32  HappyCode002  阅读(444)  评论(0编辑  收藏  举报