android 获取本机其他app的版本信息的示例代码

我们公司过一个测速的插件,我需要去被另一个app升级,这里就会有一个问题,就是如何去获取本机其他app的版本信息呢,后面我会写一篇app自动升级的文章。

我们先建一个实体类,用来存放app信息。

package com.zznode.bean;import android.graphics.drawable.Drawable;import android.util.Log;/** * Created by 杰梵 on 2017/9/25. * 用来存取app的信息。 */public class AppInfo {  public String appName = "";  public String packageName = "";  public String versionName = "";  public int versionCode = 0;  public Drawable appIcon = null;  public void print(){    Log.v("app","Name:"+appName+" Package:"+packageName);    Log.v("app","Name:"+appName+" versionName:"+versionName);    Log.v("app","Name:"+appName+" versionCode:"+versionCode);  }}

下面是我写的一个方法,可以选择获取手机安装的所有app的信息,你也可以单独选择获取单独系统应用的信息,或者是非系统应用的信息。

/**   *   * @param sign 1、本机全部app的信息 2、系统应用的信息 3、非系统应用的信息   * @return app的信息   */  public List<AppInfo> getAppInfo(int sign) {    List<AppInfo> appList = new ArrayList<AppInfo>(); //用来存储获取的应用信息数据         List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);    for (int i = 0; i < packages.size(); i++) {      PackageInfo packageInfo = packages.get(i);      AppInfo tmpInfo = new AppInfo();      tmpInfo.appName = packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();      tmpInfo.packageName = packageInfo.packageName;      tmpInfo.versionName = packageInfo.versionName;      tmpInfo.versionCode = packageInfo.versionCode;      tmpInfo.appIcon = packageInfo.applicationInfo.loadIcon(getPackageManager());      if (sign == 1) {//全手机全部应用        appList.add(tmpInfo);      } else if (sign == 2) {        if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {          appList.add(tmpInfo);//如果非系统应用,则添加至appList        }      } else if (sign == 3) {        if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {          appList.add(tmpInfo);//如果非系统应用,则添加至appList        }      }    }    return appList;  }

你可以获取本手机所有的app信息,就拿到自己想要的app信息啦。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

世上没有绝望的处境,只有对处境绝望的人。

android 获取本机其他app的版本信息的示例代码

相关文章:

你感兴趣的文章:

标签云: