Is there any way, how to get list of all activities in running app?
I have tried:
ActivityInfo[] list = getPackageManager().getPackageArchiveInfo(
This code gets list of all the Activities
in the application. you can use the same code to get Broadcast Receivers
, Services
and Content Providers
with little editing. Please let me know if there is any way to get the Intent-filters
.
public String getAllActivities(Context context) {
try {
String Activities = "";
PackageInfo pi = context.getPackageManager().getPackageInfo(
context.getPackageName(), PackageManager.GET_ACTIVITIES);
if(pi.activities!=null)
{
ActivityInfo[] Activities_array = pi.activities;
for (int i = 0; i < Activities_array.length; i++) {
int j=i+1;
Activities = Activities + j + ") "+ pi.activities[i].name+ ", \n";
}
}
if(Activities.equals(null))
return "-";
else
return Activities;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
return null;
}
}`
@CommonsWare had the proper fix. The only thing I want to add for the solution (and would have just commented but you can't format comments properly) is that you don't need to hardcode your package name.
This solution should work:
ActivityInfo[] list = getPackageManager().getPackageInfo(getPackageName()).activities;
If the app is running, then use getPackageInfo()
, instead of getPackageArchiveInfo()
.