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信息啦。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。