获取手机里面的所有的应用程序

实体类
public class AppInfo {

private String apkpath;


public String getApkpath() {
    return apkpath;
}

public void setApkpath(String apkpath) {
    this.apkpath = apkpath;
}

/**
 * 应用程序的图标
 */
private Drawable icon;

/**
 * 应用程序名称
 */
private String name;

/**
 * 应用程序安装的位置,true手机内存 ,false外部存储卡
 */
private boolean inRom;

/**
 * 应用程序的大小
 */
private long appSize;

/**
 * 是否是用户程序  true 用户程序 false 系统程序
 */
private boolean userApp;

/**
 * 应用程序的包名
 */
private String packname;

public Drawable getIcon() {
    return icon;
}

public void setIcon(Drawable icon) {
    this.icon = icon;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public boolean isInRom() {
    return inRom;
}

public void setInRom(boolean inRom) {
    this.inRom = inRom;
}

public long getAppSize() {
    return appSize;
}

public void setAppSize(long appSize) {
    this.appSize = appSize;
}

public boolean isUserApp() {
    return userApp;
}

public void setUserApp(boolean userApp) {
    this.userApp = userApp;
}

public String getPackname() {
    return packname;
}

public void setPackname(String packname) {
    this.packname = packname;
}

@Override
public String toString() {
    return "AppInfo [name=" + name + ", inRom=" + inRom + ", appSize="
            + appSize + ", userApp=" + userApp + ", packname=" + packname
            + "]";
}

——————————————————————————————
解析
public class AppInfoParser {
/**
* 获取手机里面的所有的应用程序
* @param context 上下文
* @return
*/
public static List getAppInfos(Context context){
//得到一个java保证的 包管理器。
PackageManager pm = context.getPackageManager();
List packInfos = pm.getInstalledPackages(0);
List appinfos = new ArrayList();
for(PackageInfo packInfo:packInfos){
AppInfo appinfo = new AppInfo();
String packname = packInfo.packageName;
appinfo.setPackname(packname);
Drawable icon = packInfo.applicationInfo.loadIcon(pm);
appinfo.setIcon(icon);
String appname = packInfo.applicationInfo.loadLabel(pm).toString();
appinfo.setName(appname);
//应用程序apk包的路径
String apkpath = packInfo.applicationInfo.sourceDir;
appinfo.setApkpath(apkpath);
File file = new File(apkpath);
long appSize = file.length();
appinfo.setAppSize(appSize);
//应用程序安装的位置。
int flags = packInfo.applicationInfo.flags; //二进制映射 大bit-map
if((ApplicationInfo.FLAG_EXTERNAL_STORAGE&flags)!=0){
//外部存储
appinfo.setInRom(false);
}else{
//手机内存
appinfo.setInRom(true);
}
if((ApplicationInfo.FLAG_SYSTEM&flags)!=0){
//系统应用
appinfo.setUserApp(false);
}else{
//用户应用
appinfo.setUserApp(true);
}
appinfos.add(appinfo);
appinfo = null;
}
return appinfos;
}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值