从网上搜到的线索:

下面的代码利用Intent.CATEGORY_LAUNCHER,可以取得表示在Launcher中的所有App信息
可是如何取得正在运行状态的App信息呢?在intent里面没找到对应的定义。
希望高手指教,谢谢

  1. 1:  PackageManager manager=getPackageManager();
    2:   Intent intent=new Intent(Intent.ACTION_MAIN,null);
    3:  
    4:   //在Launcher中的所有App信息--》 apps
    5:   intent.addCategory(Intent.CATEGORY_LAUNCHER);  
    6:   List<ResolveInfo> apps=manager.queryIntentActivities(intent,0);
    7:   Collections.sort(apps,new ResolveInfo.DisplayNameComparator(manager));

    2.关于开机运行的程序的获得:

    线索:

    getPackageManager().queryIntent***()可以指定Intent查循所有的Activity,其他组件类似!

  1. 思考:要想让一个Activity或BroadcastReceiver在开机时启动运行,要在项目的Androidmanifest.xml中的<intent-filter>中写上<action android:name = “android.intent.action.BOOT_COMPLETED”>

所以要可以这样处理来获得开机运行的程序:

 1:  public List fetch_installed_apps() {
 2:          PackageManager packageManager = getPackageManager();
 3:  
 4:          Intent intent = new Intent(Intent.ACTION_BOOT_COMPLETED,null);//开机启动的intent
 5:          List<ResolveInfo> appsList = packageManager.queryIntentActivities(intent, 0);//搜索开机启动的intent的Activity
 6:  //        List<ResolveInfo> appsList = packageManager.queryBroadcastReceivers(intent, 0);//搜索开机启动的intent的BroadcastReceivers
 7:          list = new ArrayList<Map<String, Object>>(appsList.size());
 8:          Log.d("TAG", appsList.size()+"");
 9:          Iterator<ResolveInfo> l = appsList.iterator();
10:  
11:          while (l.hasNext()) {
12:              Map<String, Object> map = new HashMap<String, Object>();
13:              ResolveInfo app = (ResolveInfo) l.next();
14:              String packageName = app.activityInfo.packageName;// 包名
15:              String appDir = app.activityInfo.labelRes+"";// 程序的路径
16:              File appFile = new File(appDir);// 由路径创建一个File
17:              String fileSize = appFile.length() + "";// 当前程序的大小
18:              String label = "";
19:              try {
20:  //                label = getPackageManager().getApplicationLabel(app).toString();// Label
21:  //                PackageInfo pInfo = getPackageManager().getPackageInfo(
22:  //                        packageName, MODE_APPEND);
23:                  // versioncode =pInfo.versionCode+"";//版本号
24:  //                versionName = pInfo.versionName + "";// 版本名
25:              } catch (Exception e) {
26:                  Log.i("Exception", e.toString());
27:              }
28:              map = new HashMap<String, Object>();
29:              map.put("name", packageName);
30:              map.put("desc", appDir);
31:              // map.put("img", getPackageManager().getActivityIcon(g));
32:              list.add(map);
33:          }
34:          return list;
35:      }

更多相关文章

  1. Android判断app是不是第一次启动
  2. android Service Binder交互通信实例详解
  3. # Android中Activity四种启动模式和taskAffinity属性详解 #(6原
  4. Android(安卓)退出activity 的方式总结
  5. [置顶] Android应用程序的debug属性
  6. Android程序员
  7. OPhone/Android应用程序内存泄漏确认与定位
  8. android 开机自启动的几种方法,监听不到RECEIVE_BOOT_COMPLETED的
  9. android 在Service中启动Activity

随机推荐

  1. Android(安卓)Application类的详细介绍
  2. android中的HandlerThread类的学习
  3. Android系统做了哪些优化?
  4. Android的Handler总结
  5. android、IOS 基于webview 与 HTML 的集
  6. android R 文件生成不了
  7. 从零搭建 repo 服务器
  8. Android线程优先级设置方法
  9. android笔记
  10. Android(安卓)4.4.2 exfat 移植