Android开发获取系统中已安装程序信息的方法
本文实例讲述了Android开发获取系统中已安装程序信息的方法。分享给大家供大家参考,具体如下:
publicclassAppInfoParser{
privatestaticStringtag="AppInfoParser";
publicstaticListgetAppInfos(Contextcontext){
//首先获取到包的管理者
PackageManagerpackageManager=context.getPackageManager();
//获取到所有的安装包
ListinstalledPackages=packageManager.getInstalledPackages(0);
ArrayListappInfos=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程序设计有所帮助。