zoukankan      html  css  js  c++  java
  • 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();  
                    
                }  
        }  



    
    
    
       
    
  • 相关阅读:
    升级 asp.net core 1.1 到 2.0 preview
    【asp.net core】Publish to a Linux-Ubuntu 14.04 Server Production Environment
    CEF 各个版本适应的平台参考表
    VC2012编译CEF3-转
    【WebKit内核 CEF3 】 第一篇:下载分支代码并本地编译
    INNODB自增主键的一些问题 vs mysql获得自增字段下一个值
    Mysql的批量导入类 MySqlBulkLoader
    一个产生随机数字 字符串验证码 日期的类扩展实现
    asp web api json 序列化后 把私有字段信息也返回了解决办法
    使用Elasticsearch 与 NEST 库 构建 .NET 企业级搜索
  • 原文地址:https://www.cnblogs.com/happyxiaoyu02/p/6818987.html
Copyright © 2011-2022 走看看