应用信息相关工具性代码

1.获取应用版本号和版本名称

try {
            PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), 0);
            int versionCode = info.versionCode;
            String versionName = info.versionName;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }

2.跳转到应用商店

private void goToMarket() {
        try {
            Uri uri = Uri.parse("market://details?id=" + getPackageName());
            Intent intent1 = new Intent(Intent.ACTION_VIEW, uri);
            intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent1);
        } catch (Exception e) {
            e.printStackTrace();
            CustomToast.makeText(this, "尚未安装任何应用市场", Toast.LENGTH_SHORT).show();
        }
    }

3.得到手机中所有应用信息的列表

/*
     * 得到手机中所有应用信息的列表
     AppInfo Drawable icon String appName String packageName
     */
     protected List<AppInfo> getAllAppInfos()
     {

          List<AppInfo> list = new ArrayList<AppInfo>();
          // 得到应用的packgeManager
          PackageManager packageManager = getPackageManager();
          // 创建一个主界面的intent
          Intent intent = new Intent();
          intent.setAction(Intent.ACTION_MAIN);
          intent.addCategory(Intent.CATEGORY_LAUNCHER);
          // 得到包含应用信息的列表
          List<ResolveInfo> ResolveInfos = packageManager.queryIntentActivities(
                    intent, 0);
          // 遍历
          for (ResolveInfo ri : ResolveInfos)
          {
               // 得到包名
               String packageName = ri.activityInfo.packageName;
               // 得到图标
               Drawable icon = ri.loadIcon(packageManager);
               // 得到应用名称
               String appName = ri.loadLabel(packageManager).toString();
               // 封装应用信息对象
               AppInfo appInfo = new AppInfo(icon, appName, packageName);
               // 添加到list
               list.add(appInfo);
          }
          return list;
     }

猜你喜欢

转载自blog.csdn.net/xlh1191860939/article/details/71633564