Android开发获取系统中已安装程序信息的方法
本文实例讲述了Android开发获取系统中已安装程序信息的方法。分享给大家供大家参考,具体如下:
publicclassAppInfoParser{ privatestaticStringtag="AppInfoParser"; publicstaticListgetAppInfos(Contextcontext){ //首先获取到包的管理者 PackageManagerpackageManager=context.getPackageManager(); //获取到所有的安装包 List installedPackages=packageManager.getInstalledPackages(0); ArrayList appInfos=newArrayList<>(); for(PackageInfoinstalledPackage:installedPackages){ AppInfoappInfo=newAppInfo(); //程序包名 StringpackageName=installedPackage.packageName; appInfo.setPackageName(packageName); //获取到图标 Drawableicon=installedPackage.applicationInfo.loadIcon(packageManager); appInfo.setIcon(icon); //获取到应用的名字 StringappName=installedPackage.applicationInfo.loadLabel(packageManager).toString(); appInfo.setAppName(appName); //获取到安装包的路径 StringsourceDir=installedPackage.applicationInfo.sourceDir; Filefile=newFile(sourceDir); //获取到安装apk的大小 longapkSize=file.length(); //格式化apk的大小 appInfo.setApkSize(Formatter.formatFileSize(context,apkSize)); intflags=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); } returnappInfos; } }
publicclassAppInfo{ //应用图标 privateDrawableicon; //应用的名字 privateStringappName; //应用程序的大小 privateStringapkSize; //表示用户程序 privatebooleanisUserApp; //存储的位置. privatebooleanisSD; privateStringpackageName; publicStringgetPackageName(){ returnpackageName; } publicvoidsetPackageName(StringpackageName){ this.packageName=packageName; } publicDrawablegetIcon(){ returnicon; } publicvoidsetIcon(Drawableicon){ this.icon=icon; } publicStringgetAppName(){ returnappName; } publicvoidsetAppName(StringappName){ this.appName=appName; } publicStringgetApkSize(){ returnapkSize; } publicvoidsetApkSize(StringapkSize){ this.apkSize=apkSize; } publicbooleanisUserApp(){ returnisUserApp; } publicvoidsetUserApp(booleanisUserApp){ this.isUserApp=isUserApp; } publicbooleanisSD(){ returnisSD; } publicvoidsetSD(booleanisSD){ this.isSD=isSD; } @Override publicStringtoString(){ return"AppInfo{"+ "appName='"+appName+'\''+ ",apkSize='"+apkSize+'\''+ ",isUserApp="+isUserApp+ ",isSD="+isSD+ '}'; } }
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。