得到安卓所有已安装程序的信息
来源:互联网 发布:js微信短网址生成api 编辑:程序博客网 时间:2024/05/21 07:49
得到安卓手机中所有已安装的应用程序信息,包括系统软件和用户自己的软件
核心代码如下:
<span style="white-space:pre"></span>/** * 获取所有已安装的应用程序 * * @param context * 上下文 * @return 本机所有程序信息 */public static ArrayList<AllAppInfo> getAllAppInfo(Context context) {ArrayList<AllAppInfo> appList = new ArrayList<AllAppInfo>();List<PackageInfo> packageInfos = context.getPackageManager().getInstalledPackages(0);for (int i = 0; i < packageInfos.size(); i++) {PackageInfo pInfo = packageInfos.get(i);AllAppInfo allAppInfo = new AllAppInfo();allAppInfo.setAppname(pInfo.applicationInfo.loadLabel(context.getPackageManager()).toString());// 应用程序的名称allAppInfo.setPackagename(pInfo.packageName);// 应用程序的包allAppInfo.setVersionCode(pInfo.versionCode);// 版本号allAppInfo.setFlags(pInfo.applicationInfo.flags); // uid号String dir = pInfo.applicationInfo.publicSourceDir;int size = Integer.valueOf((int) new File(dir).length());allAppInfo.setSize(size);// 应用大小allAppInfo.setLastInstal(pInfo.firstInstallTime);// allAppInfo.setProvider(pInfo.providers);allAppInfo.setAppicon(pInfo.applicationInfo.loadIcon(context.getPackageManager()));allAppInfo.setInstalPath(pInfo.applicationInfo.sourceDir);appList.add(allAppInfo);}return appList;}
package com.lqr.utils;import java.util.Arrays;import android.content.pm.PackageManager;import android.content.pm.ProviderInfo;import android.graphics.drawable.Drawable;/** * 程序的基本信息 * * @author CSDN_LQR * */public class AllAppInfo {private int versionCode = 0; // 版本号private String appname = "";// 程序名称private String packagename = ""; // 包名称private Drawable appicon;// 图标private int size;// 应用大小private long lastInstal;// 最后一次安装时间private ProviderInfo[] provider;// 供应商private String InstalPath;// 安装路径private int flag; // 判断是不是系统应用public int getVersionCode() {return versionCode;}public void setAppicon(PackageManager packageManager) {// TODO Auto-generated method stub}public void setVersionCode(int versionCode) {this.versionCode = versionCode;}public String getAppname() {return appname;}public void setAppname(String appname) {this.appname = appname;}public String getPackagename() {return packagename;}public void setPackagename(String packagename) {this.packagename = packagename;}public Drawable getAppicon() {return appicon;}public void setAppicon(Drawable appicon) {this.appicon = appicon;}public int getSize() {return size;}public void setSize(int size) {this.size = size;}/** * @return the lastInstal */public long getLastInstal() {return lastInstal;}/** * @param firstInstallTime * the lastInstal to set */public void setLastInstal(long firstInstallTime) {this.lastInstal = firstInstallTime;}/** * @return the provider */public ProviderInfo[] getProvider() {return provider;}/** * @param providers * the provider to set */public void setProvider(ProviderInfo[] providers) {this.provider = providers;}/** * @return the instalPath */public String getInstalPath() {return InstalPath;}/** * @param instalPath * the instalPath to set */public void setInstalPath(String instalPath) {InstalPath = instalPath;}public void setFlags(int flag) {this.flag = flag;}public int getFlags() {return this.flag;}@Overridepublic String toString() {return "AllAppInfo [versionCode=" + versionCode + ", appname="+ appname + ", packagename=" + packagename + ", appicon="+ appicon + ", lastInstal=" + lastInstal + ", provider="+ Arrays.toString(provider) + ", InstalPath=" + InstalPath+ ", flag=" + flag + "]";}}
区分系统软件和用户安装的软件:
<span style="white-space:pre"></span>ArrayList<AllAppInfo> mAllAppInfo = getAllAppInfo(UIUtils.getContext());<span style="white-space:pre">List<AllAppInfo> localAppList = new ArrayList<AllAppInfo>();</span>// 处理一下数据for (AllAppInfo appInfo : mAllAppInfo) {if ((appInfo.getFlags() & ApplicationInfo.FLAG_SYSTEM) > 0) {// 如果判定为系统应用} else {// 本地应用localAppList.add(appInfo);}}
下图是自己做的一个小Demo:
0 0
- 得到安卓所有已安装程序的信息
- 获取所有已安装的程序信息
- 获得所有已安装程序的信息
- Android得到已安装的应用程序信息!
- Android得到已安装的应用程序信息!
- android得到已安装和未安装apk的信息
- 安卓开发获取本机所有已安装程序(形成ListView)
- 安卓获取已安装程序的列表
- Android获取已安装程序的信息
- 得到已安装程序的大小和时间
- 获取已安装的程序和APK文件的信息
- Android之获取手机上已安装的所有的应用程序的信息,并判断是否安装了某应用程序(系统程序或非系统应用程序判断)
- 得到一个系统的所有信息
- 获取android系统中已安装程序的信息
- 如何检索获取安卓图片数据库的所有信息
- c# 如何获得你电脑安装的所有程序信息
- 获得系统中所有安装程序的信息
- 关于获取Android系统所有已安装App信息的一些操作(详细)
- VS2010产生C的dll方法和C#调用方式
- HDU 1005 Number Sequence (找循环节)
- 一个经典例子让你彻彻底底理解java回调机制
- 八皇后问题(回溯法)
- iOS开发技巧:设置状态样式
- 得到安卓所有已安装程序的信息
- 完全二叉树节点数
- 坑爹的Unity与Android交互
- 两种方法实现类微博tabBar,并跳转页面隐藏
- Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用
- ajax
- 安装window操作系统
- Linux内存占用过高?非也
- 【深度反思】:环境影响人的非常重要的因素