Как просмотреть все действия, открытые приложением?

Я думаю, что должно быть возможно получить все действия от стороннего приложения, описанного в файле манифеста. Я не могу понять, как это сделать.

например:

List<Activity> aList = packManager.getActivitiesForPackage("package.name"); 

заранее спасибо!

Вы должны иметь возможность сделать это с помощью getPackageArchiveInfo() GET_ACTIVITIES флаг GET_ACTIVITIES . Я не устал.

 private void getActivityList() throws NameNotFoundException { Intent i = new Intent(Intent.ACTION_MAIN); i.addCategory(Intent.CATEGORY_LAUNCHER); PackageManager pm = this.getPackageManager(); PackageInfo info = pm.getPackageInfo("com.packagename", PackageManager.GET_ACTIVITIES); ApplicationInfo test = info.applicationInfo; ActivityInfo[] list = info.activities; } 

Спасибо за ответ!

Я думаю, что нашел решение для перечисления всех видов деятельности в приложении, а не из самых элегантных, хотя …

 //the method gets all activities for an application private void getAppActivities() { PackageManager pManager = getPackageManager(); Intent startIntent = setStartIntent(); List<ResolveInfo> apps = pManager.queryIntentActivities(startIntent, 0); int count = apps.size(); for (int i = 0; i < count; i++) { ResolveInfo info = apps.get(i); String packageName = info.activityInfo.packageName; Intent intent = new Intent(); intent.setPackage(packageName); //activities holds the activities defined in the package List<ResolveInfo> activities = pManager.queryIntentActivities(intent, 0); } } 

Если у вас есть контекст приложения, используйте это:

 private static void listAllActivities(Context context) { PackageManager pManager = context.getPackageManager(); String packageName = context.getApplicationContext().getPackageName(); try { ActivityInfo[] list = pManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES).activities; for (ActivityInfo activityInfo : list) { Log.d(TAG, "ActivityInfo = " + activityInfo.name); } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } }