Android获取已安装程序的信息
2016-06-26 09:45
561 查看
public class AppInfoParser { private static String tag = "AppInfoParser"; public static List<AppInfo> getAppInfos(Context context){ //首先获取到包的管理者 PackageManager packageManager = context.getPackageManager(); //获取到所有的安装包 List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0); ArrayList<AppInfo> appInfos = new ArrayList<>(); for (PackageInfo installedPackage : installedPackages) { AppInfo appInfo = new AppInfo(); String packageName = installedPackage.packageName; appInfo.setPackageName(packageName); //获取到图标 Drawable icon = installedPackage.applicationInfo.loadIcon(packageManager); appInfo.setIcon(icon); //获取到应用的名字 String appName = installedPackage.applicationInfo.loadLabel(packageManager).toString(); appInfo.setAppName(appName); //获取到安装包的路径 String sourceDir = installedPackage.applicationInfo.sourceDir; File file = new File(sourceDir); //获取到安装apk的大小 long apkSize = file.length(); //格式化apk的大小 appInfo.setApkSize(Formatter.formatFileSize(context,apkSize)); // System.out.println("应用名字:" +appName); // System.out.println("应用路径:" +sourceDir); // System.out.println("应用大小:" +apkSize); // System.out.println("=========================:"); int flags = installedPackage.applicationInfo.flags; //判断当前是否是系统app if((flags & ApplicationInfo.FLAG_SYSTEM) !=0){ //那么就是系统app appInfo.setUserApp(false); }else{ //那么就是用户app appInfo.setUserApp(true); } if((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){ //那么当前安装的就是sd卡 appInfo.setSD(true); }else{ //那么就是手机内存 appInfo.setSD(false); } appInfos.add(appInfo); } return appInfos; } }
相关文章推荐
- 跟我学Android之一 概述
- 跟我学Android之一 概述
- Android5.0 之一 概述
- litepal建表报错
- [Android] TopSheetBehavior
- Android解决Fragment使用replace方法重叠问题
- Android自定义控件绘制流程与Paint, Canvas相关API
- Android之ActivityManage长用方法总结
- Android学习之Spinner
- 获取LayoutInflater的三种方式分析
- OSG for Android新手教程系列(四)——JNI与NDK的使用
- ubuntu中在Launcher上添加Android Studio的运行图标
- Ubuntu14.04环境编译vlc源码for安卓Android系统
- Android 模拟器获得Root权限
- Android拍照并保存在本地
- TextView属性的简单使用
- android TabHost导航切换实现方式
- Android APK反编译就这么简单 最新版本详解(附图)
- 深入理解Android 消息机制(一)——综述
- Bundle数据传递案例