我正在嘗試制作一個簡單的 Android 啟動器。通過教程和其他一些堆疊溢位帖子,我發現了這種獲取已安裝應用程式串列的方法:
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> rawAppList = getApplicationContext()
.getPackageManager()
.queryIntentActivities( mainIntent, 0);
但是,當我嘗試運行它時,我只得到一個包含 4 個應用程式的串列。我用來測驗的模擬器通過默認啟動器顯示了 14 個應用程式。理想情況下,我可以在自己的啟動器中看到所有這些。
我嘗試克隆一個git 專案,它以相同的方式安裝應用程式。在同一個模擬器上運行它時,所有 14 個應用程式都按預期檢索。
很明顯,我做錯了什么,但我不知道是什么。據我所知,我觀看的教程沒有額外的步驟。在我見過的任何其他堆疊溢位帖子中似乎也沒有建議任何額外的步驟。
誰能發現我在這里做錯了什么?
uj5u.com熱心網友回復:
為了遵守包可見性規則,您需要一個<queries>元素作為根元素的子<manifest>元素:
<queries>
<intent>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.action.LAUNCHER" />
</intent>
</queries>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/425268.html
