2013-01-16 84 views
1

目前,我正在努力獲取所有正在運行的應用程序的列表。我已經能夠以下列方式執行此操作,使用圖標運行應用程序(內部和外部)

ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
ActivityManager.MemoryInfo mInfo = new ActivityManager.MemoryInfo(); 
activityManager.getMemoryInfo(mInfo); 
List<RunningAppProcessInfo> listOfRunningProcess = activityManager 
       .getRunningAppProcesses(); 
Log.d(TAG, "XXSize: " + listOfRunningProcess.size()); 
l1 = findViewById(R.id.Layout1); 
for (RunningAppProcessInfo runningAppProcessInfo : listOfRunningProcess) { 
    if (runningAppProcessInfo.uid > 1026) { 
     uID = runningAppProcessInfo.uid; 
     Log.d(TAG, "ANS " + runningAppProcessInfo.processName + " Id :" 
      + runningAppProcessInfo.pid + " UID: " + uID); 
    } 
} 

它給出了所有正在運行的應用程序的列表。現在我想根據這些應用程序是內部應用程序還是外部應用程序來區分這些應用程序。有沒有什麼辦法來分離出內部和外部的應用程序。

回答

1

Here是檢查應用程序是否是系統應用程序的線程。

因此,如果您獲得應用程序列表,那麼您可以使用上述線程檢查應用程序是否是系統應用程序。這樣你可以分開這些應用程序。

+0

Thanx,讓我檢查一下。 –