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