我想通过使用PackageInfo以列表的形式获取应用程序中的所有活动。请告诉我是否有方法可以实现。
提前致谢。
我想通过使用PackageInfo以列表的形式获取应用程序中的所有活动。请告诉我是否有方法可以实现。
提前致谢。
我得到了以下回答:
public static ArrayList<ActivityInfo> getAllRunningActivities(Context context) {
try {
PackageInfo pi = context.getPackageManager().getPackageInfo(
context.getPackageName(), PackageManager.GET_ACTIVITIES);
return new ArrayList<>(Arrays.asList(pi.activities));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
return null;
}
}
Context.getPackageName()
使代码可在项目之间重复使用。 - Someone Somewhere尝试以下代码:
final PackageManager pm = getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> appList = pm.queryIntentActivities(mainIntent, 0);
Collections.sort(appList, new ResolveInfo.DisplayNameComparator(pm));
for (ResolveInfo temp : appList) {
Log.v("my logs", "package and activity name = "
+ temp.activityInfo.packageName + " "
+ temp.activityInfo.name);
}