每个android手机都有“管理应用程序”这个功能,里面列出了我们手机系统里安装的全部软件,今天突发奇想,这个是怎么实现的呢?自己也想写一个程序,能够把手机里面全部的软件都列出来,于是就上网找资料,发现这个实现起来一点都不难。
下面直接把源代码贴出来,一目了然,都不需要什么解释的:
PackageManager pManager = getPackageManager();
List<PackageInfo> appList = getAllApps(main.this);
for (int i = 0; i < appList.size(); i++)
{
PackageInfo pinfo = appList.get(i);
//包名
pinfo.applicationInfo.packageName;
//图片名
pManager.getApplicationIcon(pinfo.applicationInfo);
//应用名
pManager.getApplicationLabel(pinfo.applicationInfo).toString();
}
getAllApps方法:
public static List<PackageInfo> getAllApps(Context context)
{
List<PackageInfo> apps = new ArrayList<PackageInfo>();
PackageManager pManager = context.getPackageManager();
// 获取手机内所有应用软件包括系统预装的
List<PackageInfo> paklist = pManager.getInstalledPackages(0);
for (int i = 0; i < paklist.size(); i++)
{
PackageInfo pak = (PackageInfo)paklist.get(i);
// 判断是否为非系统预装的应用程序
if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0)
{
apps.add(pak);
}
}
return apps;
}
//这个是把所有非系统软件列出来了,要是需要全部的话,不用那个判断就好了。
结束,真的很方便!