赞
踩
//这个在AndroidManifest中加入 CATEGORY_SAMPLE_CODE 标记
<activity
android:name="com.xxx.xxx.xxx.activity.TestActivity"
android:configChanges="orientation|keyboardHidden|screenLayout"
android:label="Test"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.xxx.xxx.xxx.intent.category.SAMPLE_CODE" />
</intent-filter>
</activity>
public static final String CATEGORY_SAMPLE_CODE = "com.xxx.xxx.xxx.intent.category.SAMPLE_CODE";
private List<Map<String, Object>> getData() {
List<Map<String, Object>> myData = new ArrayList<Map<String, Object>>();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(CATEGORY_SAMPLE_CODE);
PackageManager pm = getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
if (null == list) {
return myData;
}
int len = list.size();
for (int i = 0; i < len; i++) {
ResolveInfo info = list.get(i);
if (!getPackageName().equalsIgnoreCase(info.activityInfo.packageName)) {
continue;
}
CharSequence labelSeq = info.loadLabel(pm);
CharSequence description = null;
if (info.activityInfo.descriptionRes != 0) {
description = pm.getText(info.activityInfo.packageName,
info.activityInfo.descriptionRes, null);
}
String label = labelSeq != null ? labelSeq.toString() : info.activityInfo.name;
addItem(myData,
label,
activityIntent(info.activityInfo.applicationInfo.packageName,
info.activityInfo.name), description);
}
return myData;
}
private void addItem(List<Map<String, Object>> data, String name, Intent intent,
CharSequence description) {
Map<String, Object> temp = new HashMap<String, Object>();
temp.put("title", name);
if (description != null) {
temp.put("description", description.toString());
}
temp.put("intent", intent);
data.add(temp);
}
private Intent activityIntent(String pkg, String componentName) {
Intent result = new Intent();
result.setClassName(pkg, componentName);
return result;
}
@Override
@SuppressWarnings("unchecked")
public void onListItemClick(ListView l, View v, int position, long id) {
Map<String, Object> map = (Map<String, Object>) l.getItemAtPosition(position);
Intent intent = (Intent) map.get("intent");
startActivity(intent);
}

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。