簡體   English   中英

列出 Android 中的所有應用程序

[英]List the all apps in Android

我正在嘗試使用 queryIntentActivities 方法列出 android 設備中的所有應用程序,但該列表並未返回所有應用程序,它僅返回其中三個。 這是我的代碼:

    PackageManager packageManager = getPackageManager();

    Intent intent = new Intent(Intent.ACTION_MAIN, null);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    List<ResolveInfo> allApps = packageManager.queryIntentActivities(intent, 0);
    for (ResolveInfo ri : allApps) {
        Log.d("Labels", String.valueOf(ri.loadLabel(packageManager)));
    }

現在有沒有人為什么它只返回 3 個應用程序?

您最有可能嘗試在 Android 11 上執行此操作。確保將<uses-permission android:name"android.permission.QUERY_ALL_PACKAGES">權限添加到 AndroidManifest.Z0F635D7B88C78 文件。

雖然我還沒有測試過 R DP2 的這方面,但您的應用程序現在似乎無法找出安裝了哪些其他應用程序,一般來說。 引用的示例是 queryIntentActivities(),但要使其真正起作用,您需要認真地對 PackageManager 進行 lobotomize。 您可以將某些包和某些結構列入白名單,以嘗試在某些用例中使用它。 而且,這就是在 DP1 中看到的神秘 QUERY_ALL_PACKAGES 權限發揮作用的地方——這個權限消除了這些新的限制。 鑒於“尋找 Google Play 為需要此權限的應用程序提供指南”警告,最安全的假設是,如果您嘗試使用它,最終您將被機器人禁止進入 Play 商店。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM