欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-12-18 22:01:16
我们公司过一个测速的插件,我需要去被另一个app升级,这里就会有一个问题,就是如何去获取本机其他app的版本信息呢,后面我会写一篇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信息啦。

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

上一篇:

下一篇: