手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android实现获取应用程序相关信息列表的方法
Android实现获取应用程序相关信息列表的方法
摘要:本文所述为Androdi获取手机应用列表的方法,比如获取到Android应用的软件属性、大小和应用程序路径、应用名称等,获取所有已安装的An...

本文所述为Androdi获取手机应用列表的方法,比如获取到Android应用的软件属性、大小和应用程序路径、应用名称等,获取所有已安装的Android应用列表,包括那些卸载了的,但没有清除数据的应用程序,同时在获取到应用信息的时候,判断是不是系统的应用程序,这是一个应用管理器所必需具备的功能。

具体实现代码如下:

//AppInfoProvider.java package com.xh.ui; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; /** * 类名称:AppInfoProvider * 类描述:获取应用程序的相关信息 * 创建人:LXH */ public class AppInfoProvider { private PackageManager packageManager; //获取一个包管理器 public AppInfoProvider(Context context){ packageManager = context.getPackageManager(); } /** *获取系统中所有应用信息, *并将应用软件信息保存到list列表中。 **/ public List<AppInfo> getAllApps(){ List<AppInfo> list = new ArrayList<AppInfo>(); AppInfo myAppInfo; //获取到所有安装了的应用程序的信息,包括那些卸载了的,但没有清除数据的应用程序 List<PackageInfo> packageInfos = packageManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES); for(PackageInfo info:packageInfos){ myAppInfo = new AppInfo(); //拿到包名 String packageName = info.packageName; //拿到应用程序的信息 ApplicationInfo appInfo = info.applicationInfo; //拿到应用程序的图标 Drawable icon = appInfo.loadIcon(packageManager); //拿到应用程序的大小 //long codesize = packageStats.codeSize; //Log.i("info", "-->"+codesize); //拿到应用程序的程序名 String appName = appInfo.loadLabel(packageManager).toString(); myAppInfo.setPackageName(packageName); myAppInfo.setAppName(appName); myAppInfo.setIcon(icon); if(filterApp(appInfo)){ myAppInfo.setSystemApp(false); }else{ myAppInfo.setSystemApp(true); } list.add(myAppInfo); } return list; } /** *判断某一个应用程序是不是系统的应用程序, *如果是返回true,否则返回false。 */ public boolean filterApp(ApplicationInfo info){ //有些系统应用是可以更新的,如果用户自己下载了一个系统的应用来更新了原来的,它还是系统应用,这个就是判断这种情况的 if((info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0){ return true; }else if((info.flags & ApplicationInfo.FLAG_SYSTEM) == 0){//判断是不是系统应用 return true; } return false; } }

与实例相关的Java类如下:

//AppInfo.java package com.xh.ui; import android.graphics.drawable.Drawable; /** * 类名称:AppInfo * 类描述:应用程序类,包括了程序相关属性 * 创建人:LXH */ public class AppInfo { private Drawable icon; private String appName; private String packageName; private boolean isSystemApp; private long codesize; public long getCodesize() { return codesize; } public void setCodesize(long codesize) { this.codesize = codesize; } public Drawable getIcon() { return icon; } public void setIcon(Drawable icon) { this.icon = icon; } public String getAppName() { return appName; } public void setAppName(String appName) { this.appName = appName; } public String getPackageName() { return packageName; } public void setPackageName(String packageName) { this.packageName = packageName; } public boolean isSystemApp() { return isSystemApp; } public void setSystemApp(boolean isSystemApp) { this.isSystemApp = isSystemApp; } }

实例中配有详尽的注释,读者可以在理解程序功能的基础上根据自身项目需求加以改进和完善。

【Android实现获取应用程序相关信息列表的方法】相关文章:

Android获取本机电话号码的简单方法

Android打开GPS导航并获取位置信息返回null解决方案

Android实现图片循环播放的实例方法

android开发中获取手机分辨率大小的方法

使用android隐藏api实现亮度调节的方法

Android 图片特效处理的方法实例

Android实现多线程断点下载的方法

android实现listview分页的方法

在AndroidManifest.xml文件中设置Android程序的启动界面方法

Android上使用jspf插件框架的方法

精品推荐
分类导航