知道了包名,怎么得到包里面所有的activity对象呢?

解决方案 »

  1.   

    还要用到一个包下的所有activity?
      

  2.   

       protected List getData(String prefix) {
            List<Map> myData = new ArrayList<Map>();        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
            mainIntent.addCategory(Intent.CATEGORY_SAMPLE_CODE);        PackageManager pm = getPackageManager();
            List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);        if (null == list)
                return myData;        String[] prefixPath;
            
            if (prefix.equals("")) {
                prefixPath = null;
            } else {
                prefixPath = prefix.split("/");
            }
            
            int len = list.size();
            
            Map<String, Boolean> entries = new HashMap<String, Boolean>();        for (int i = 0; i < len; i++) {
                ResolveInfo info = list.get(i);
                CharSequence labelSeq = info.loadLabel(pm);
                String label = labelSeq != null
                        ? labelSeq.toString()
                        : info.activityInfo.name;
                
                if (prefix.length() == 0 || label.startsWith(prefix)) {
                    
                    String[] labelPath = label.split("/");                String nextLabel = prefixPath == null ? labelPath[0] : labelPath[prefixPath.length];                if ((prefixPath != null ? prefixPath.length : 0) == labelPath.length - 1) {
                        addItem(myData, nextLabel, activityIntent(
                                info.activityInfo.applicationInfo.packageName,
                                info.activityInfo.name));
                    } else {
                        if (entries.get(nextLabel) == null) {
                            addItem(myData, nextLabel, browseIntent(prefix.equals("") ? nextLabel : prefix + "/" + nextLabel));
                            entries.put(nextLabel, true);
                        }
                    }
                }
            }        Collections.sort(myData, sDisplayNameComparator);
            
            return myData;
        }
    ApiDemos里的一段代码 或许有用