2010-11-17 39 views

Trả lời

6

Bạn sẽ có thể thực hiện việc đó bằng cách sử dụng getPackageArchiveInfo() của PackageManager sử dụng cờ GET_ACTIVITIES. Tôi chưa thử nó mặc dù

7

Cảm ơn câu trả lời!

Tôi nghĩ rằng tôi đã tìm thấy một giải pháp cho liệt kê tất cả các hoạt động trong một ứng dụng quá, không phải là thanh lịch nhất mặc dù ...

//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); 
    } 
} 
+0

setStartIntent() này là gì? – RejoylinLokeshwaran

9
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; 

} 
+0

nơi để sử dụng ý định tôi? @easycheese – Tiger98

6

Nếu bạn có điều kiện ứng dụng sau đó sử dụng này:

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(); 
    } 
} 
Các vấn đề liên quan