我能夠使用軟件包管理器獲取已安裝軟件包的列表,但這包括各種系統軟件包。我可以在此列表上應用哪些過濾器,以僅顯示從主屏幕提出應用程序列表時顯示的應用程序?獲取非系統應用程序列表
2
A
回答
6
boolean nonSystem = (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0;
0
您可以使用意圖過濾從主屏幕獲取應用程序列表:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> apps = getPackageManager().queryIntentActivities(intent, 0);
0
因此上述答案將並不適用於所有案例
如果一個應用程序是一個非系統應用程序必須具有啓動Intent才能啓動它。如果啓動意圖爲空,則其爲系統應用程序,否則其爲非系統應用程序
系統應用程序的示例:「com.android.browser.provider」,「com.google.android.voicesearch」。
對於上述應用程序,當您查詢啓動Intent時,您將獲得NULL。
PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for(ApplicationInfo packageInfo:packages){
if(pm.getLaunchIntentForPackage(packageInfo.packageName) != null){
String currAppName = pm.getApplicationLabel(packageInfo).toString();
//This app is a non-system app
}
}
相關問題
- 1. 在iOS8中獲取聯繫人列表,崩潰應用程序
- 2. Android系統應用程序
- 3. 獲取應用程序安裝位置(系統或SD卡)
- 4. Android:從應用程序級庫類獲取系統服務
- 5. 在系統中獲取已安裝的應用程序
- 6. 如何獲取node.js系統CLI應用程序位置?
- 7. 獲取IIS應用程序文件系統路徑
- 8. 使用Hyperic獲取Java系統進程列表SIGAR
- 9. 系統線程vs非系統線程
- 10. 安裝在android系統/系統/應用程序目錄中的應用程序
- 11. 我們如何獲得Linux上的非系統用戶列表?
- 12. 獲取應用程序所需的程序集列表
- 13. 獲取系統
- 14. 如何獲取(提取)iOS系統應用程序的圖標,如地址簿應用程序?
- 15. fork系統調用的應用程序
- 16. 如何獲取用戶系統上可用的ActiveX列表?
- 17. 如何升級/系統/應用程序中的應用程序?
- 18. 如何更新我的應用程序/系統/應用程序
- 19. 窗口系統托盤應用程序像卷應用程序
- 20. 如何在應用程序自動啓用時自動啓用應用程序權限獲取系統警報
- 21. Linux系統調用流程序列號
- 22. 通過應用程序獲取表之間的父子關係
- 23. OSX內置強制退出應用程序獲取其應用程序列表?
- 24. 獲取系統打印機名稱列表非常緩慢的窗口
- 25. 可可應用程序系統重啓
- 26. 修改設置系統應用程序
- 27. Web應用程序登錄系統
- 28. OpenGL/GLFW:glfwOpenWindow掛(準系統應用程序)
- 29. CodeIgniter緩存 - 系統或應用程序
- 30. 應用程序插件系統
是的,但也過濾我們的相機應用程序。你如何使它不會過濾掉這些類型的應用程序? – Taranasus 2011-09-12 16:28:22