android手机已安装软件列表-packages List

public ArrayList<PackagesInfo> getInstalledApps(boolean getSysPackages)
{
ArrayList<PackagesInfo> res = new ArrayList<PackagesInfo>();
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
for(int i=0;i<packs.size();i++)
{
PackageInfo p = packs.get(i);
if ((!getSysPackages) && (p.versionName == null))
{
continue ;
}
PackagesInfo info = new PackagesInfo();
info.setAppname(p.applicationInfo.loadLabel(getPackageManager()).toString());
info.setPackgeName(p.packageName);
info.setVersionCode(p.versionCode);
info.setVersionName(p.versionName);
info.setIcon(p.applicationInfo.loadIcon(getPackageManager()));
res.add(info);
}
return res;
}


mocel: PackagesInfo

private String packgeName;

private String versionName;

private int versionCode;

private String appname;

private Drawable icon;


/**
* 获取安装程序列表
*/
public ArrayList<PackagesInfo> getInstalledApps(Context context,boolean getSysPackages)
{
ArrayList<PackagesInfo> packages = new ArrayList<PackagesInfo>();
List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(0);
for(int i = 0; i < packs.size(); i++)
{
PackageInfo p = packs.get(i);
if ((!getSysPackages) && (p.versionName == null))
{
continue ;
}
PackagesInfo info = new PackagesInfo();
info.setAppname(p.applicationInfo.loadLabel(context.getPackageManager()).toString());
info.setPackgeName(p.packageName);
info.setVersionCode(p.versionCode);
info.setVersionName(p.versionName);
info.setIcon(p.applicationInfo.loadIcon(context.getPackageManager()));
packages.add(info);
}
return packages;
}

本应用中打开其他的程序
一、使用Intent的setComponent方法
Intent intent = new Intent();
intent.setComponent(new ComponentName(“包名”, “包名.主类名”));
intent.setAction(Intent.ACTION_VIEW);
startActivity(intent);
二、使用包管理器
Intent intent = new Intent();
intent = getPackageManager().getLaunchIntentForPackage(“包名”);
startActivity(intent);

可以根据(packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)判断其是不是为0可以判断是不是系统程序
//显示非系统软件 if((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0){
map.put("img", packageInfo.applicationInfo.loadIcon(getPackageManager()).getCurrent());
map.put("name", packageInfo.applicationInfo.loadLabel(getPackageManager()).toString());
map.put("desc", packageInfo.packageName);
listMap.add(map);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值