Android开发获取开机启动项列表

来源:互联网 发布:大学生网络责任感 编辑:程序博客网 时间:2024/04/26 21:49

come from : http://android.tgbus.com/Android/tutorial/201108/363502.shtml

代码如下:

  public class BootStartUtils {
 
       private static final String BOOT_START_PERMISSION =

  "android.permission.RECEIVE_BOOT_COMPLETED";
 
       private Context mContext;
 
       public BootStartUtils(Context context) {
           mContext = context;
       }
 
       /**
        * 获取Android开机启动列表
        */
       public List<Map<String, Object>> fetchInstalledApps() {
           PackageManager pm = mContext.getPackageManager();
           List<ApplicationInfo> appInfo = pm.getInstalledApplications(0);
           Iterator<ApplicationInfo> appInfoIterator = appInfo.iterator();
           List<Map<String, Object>> appList = new ArrayList<Map<String, Object>>(appInfo.size());
 
           while (appInfoIterator.hasNext()) {
               ApplicationInfo app = appInfoIterator.next();
               int flag = pm.checkPermission(
                       BOOT_START_PERMISSION, app.packageName);
               if (flag == PackageManager.PERMISSION_GRANTED) {
                   Map<String, Object> appMap = new HashMap<String, Object>();
                   String label = pm.getApplicationLabel(app).toString();
                   Drawable icon = pm.getApplicationIcon(app);
                   String desc = app.packageName;
                   appMap.put("label", label);
                   appMap.put("icon", icon);
                   appMap.put("desc", desc);
                 
                   appList.add(appMap);
               }
           }
           return appList;
       }


0 0