List of all activities in App

前端 未结 3 1384
借酒劲吻你
借酒劲吻你 2020-12-16 06:13

Is there any way, how to get list of all activities in running app?

I have tried:

ActivityInfo[] list = getPackageManager().getPackageArchiveInfo(
           


        
相关标签:
3条回答
  • 2020-12-16 06:50

    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;
        }
    }`
    
    0 讨论(0)
  • 2020-12-16 07:03

    @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;
    
    0 讨论(0)
  • 2020-12-16 07:04

    If the app is running, then use getPackageInfo(), instead of getPackageArchiveInfo().

    0 讨论(0)
提交回复
热议问题