展会信息港展会大全

Android获得应用的信息
来源:互联网   发布日期:2016-01-14 12:30:41   浏览:3156次  

导读:程序大概分成三个部分:1:获取手机已安装的所有应用package的信息(其中包括用户自己安装的,还有系统自带的);2:滤除系统自带应用;3:通过列表显示出应用程序的图标和其他文字信息(如应用名称,包名称package......

程序大概分成三个部分:

1:获取手机已安装的所有应用package的信息(其中包括用户自己安装的,还有系统自带的);

2:滤除系统自带应用;

3:通过列表显示出应用程序的图标和其他文字信息(如应用名称,包名称package name,版本号等)

首先定义一个数据结构,来保存Android获得应用信息(icon,name,packageName,versionName,versionCode等)

下面我们看看代码,这样我们大家看的更直观一些:

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);

}

}

然后我们通过PackageManager来获取已安装的应用包信息。

好ArrayList<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());

appList.add(tmpInfo);

}了,这下手机上安装的应用数据都存在appList里了。那么如何判断一个应用是否为系统应用呢?

if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)==0) {

//非系统应用

}

else{

//系统应用

}

所以如果只需要获取到非系统应用信息,代码如下:

ArrayList<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 ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)==0) {

appList.add(tmpInfo);//如果非系统应用,则添加至appList

}

}

赞助本站

人工智能实验室

相关热词: 获得 应用 信息

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港