返回当前手机所有的应用的相关信息(名称,包名,图标,(手机内存,sd卡),(系统,用户))

来源:互联网 发布:土法炼钢 知乎 编辑:程序博客网 时间:2024/04/30 20:26

返回当前手机所有的应用的相关信息(名称,包名,图标,(手机内存,sd卡),(系统,用户));

<span style="font-size:18px;">AppInfo()这个类请根据自己需要的内容写.不要的的下面的代码不必要写.</span><span style="font-size:18px;"></span>

<span style="font-size:18px;">public class AppInfoProvider {/** * 返回当前手机所有的应用的相关信息(名称,包名,图标,(手机内存,sd卡),(系统,用户)); * @param ctx获取包管理者的上下文环境 * @return包含手机安装应用相关信息的集合 */public static List<AppInfo> getAppInfoList(Context ctx){//1,包的管理者对象PackageManager pm = ctx.getPackageManager();//2,获取安装在手机上应用相关信息的集合List<PackageInfo> packageInfoList = pm.getInstalledPackages(0);List<AppInfo> appInfoList = new ArrayList<AppInfo>();//3,循环遍历应用信息的集合for (PackageInfo packageInfo : packageInfoList) {AppInfo appInfo = new AppInfo();//4,获取应用的包名appInfo.packageName = packageInfo.packageName;//5,应用名称ApplicationInfo applicationInfo = packageInfo.applicationInfo;appInfo.name = applicationInfo.loadLabel(pm).toString();//6,获取图标appInfo.icon = applicationInfo.loadIcon(pm);//7,判断是否为系统应用(每一个手机上的应用对应的flag都不一致)if((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)==ApplicationInfo.FLAG_SYSTEM){//系统应用appInfo.isSystem = true;}else{//非系统应用appInfo.isSystem = false;}//8,是否为sd卡中安装应用if((applicationInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE)==ApplicationInfo.FLAG_EXTERNAL_STORAGE){//系统应用appInfo.isSdCard = true;}else{//非系统应用appInfo.isSdCard = false;}appInfoList.add(appInfo);}return appInfoList;}}</span>


0 0
原创粉丝点击