android中获得应用程序列表很简单,主要使用PackageManager就可以。
例如:如何获得第三方应用程序列表,即已经安装的应用程序列表,可以这样做:
PackageManager pm = mContext.getPackageManager();
List mPacks = pm.getInstalledPackages(0);
for(PackageInfo info : mPacks){
ScreenApp mInfo = new ScreenApp();
mInfo.setIcon(info.applicationInfo.loadIcon(pm));
mInfo.setName(info.applicationInfo.loadLabel(pm).toString());
mInfo.setPackageName(info.packageName);
mInfos.add(mInfo);
}

例如:获取系统所有的应用,即系统应用+已安装的应用
PackageManager pm = mContext.getPackageManager();
List mPacks = pm.getInstalledPackages(0);
for(PackageInfo info : mPacks){
if((info.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 0){
ScreenApp mInfo = new ScreenApp();
mInfo.setIcon(info.applicationInfo.loadIcon(pm));
mInfo.setName(info.applicationInfo.loadLabel(pm).toString());
mInfo.setPackageName(info.packageName);
mInfos.add(mInfo);
}
}

在第二个例子中出现了很多无法点击启动的图标,这些应用本身不是一个独立的应用,那么如何获得只包含可启动的应用列表呢?这个也不难,看下面的例子:
PackageManager pm = mContext.getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List mResolveInfo = pm.queryIntentActivities(mainIntent, 0);
for(ResolveInfo info : mResolveInfo){
String packName = info.activityInfo.packageName;
if(packName.equals(mContext.getPackageName())){
continue;
}
ScreenApp mInfo = new ScreenApp();
mInfo.setIcon(info.activityInfo.applicationInfo.loadIcon(pm));
mInfo.setName(info.activityInfo.applicationInfo.loadLabel(pm).toString());
mInfo.setPackageName(packName);
mInfos.add(mInfo);
}

关于获得正在运行的应用列表,看下面的例子:
ActivityManager am = (ActivityManager) getBaseApplication().getSystemService(Context.ACTIVITY_SERVICE);
List mAppProcessInfos = am.getRunningAppProcesses();
接下来的操作同上。

到此获得不同应用程序列表的功能就完成了。

更多相关文章

  1. Android(安卓)Uri Intent 用法汇总
  2. android调用系统联系人列表
  3. android控件之spinner (下拉列表)
  4. android用intent调用google地图
  5. Android之SharedPreferences对参数数据的存取
  6. day2
  7. Android(安卓)实现单选列表
  8. Android用类继承Application的全局变量使用注意
  9. Android获取Contact Number的例子

随机推荐

  1. Android 2.2中的APK安装参数installLocat
  2. 搞不懂为什么开发人员爱iOS恨Android?
  3. Android IPC(跨进程通信)之AIDL
  4. 第一行代码Android(一)
  5. android中listview的样式设置
  6. Android Q (Android 10.0)
  7. android 动画系列 - 目录
  8. [Android中级]使用Commons-net-ftp来实现
  9. Android入门教程 xutils框架入门教程
  10. Android应用之基本的组件(一)