簡體   English   中英

如何獲取 Android 11 中已安裝應用程序的列表

[英]How to get a list of installed apps in Android 11

此行在開發人員網站上有所描述,但我並不完全理解

Call getInstalledApplications() or getInstalledPackages(). Both methods should return a filtered list.

實際上,我需要測試Testing package visibility behavior

https://developer.android.com/training/package-visibility/testing

Android 11中有3種不同的方式查詢用戶已安裝的應用程序。

  1. 如果您已經知道要查詢哪些應用程序,只需在AndroidManifest<queries>元素中提及 package 名稱即可。
<manifest package="com.nikit.app">
    <queries>
        <package android:name="com.fake.app" />
        <package android:name="com.fake.game" />
    </queries>
    ...
</manifest>
  1. 如果您不知道要查詢的應用程序的所有 package 名稱,但有一組具有類似功能的應用程序要查詢,那么您可以根據您的要求在<queries>元素內使用意圖過濾器類似的要求已經在下面的代碼片段中完成。
<manifest package="com.nikit.app">
    <queries>
        <intent>
            <action android:name="android.intent.action.SEND" />
            <data android:mimeType="image/jpeg" />
        </intent>
    </queries>
    ...
</manifest>

<intent>元素看起來像<intent-filter>但幾乎沒有區別。 元素有以下限制:

  • <intent>元素只能有一個<action>元素。
  • 該元素只能具有以下屬性: mimeTypeschemehost
  1. 如果您想像之前一樣查詢用戶的所有應用程序,您需要在AndroidManifest中包含QUERY_ALL_PACKAGES權限。 這是一個normal的權限,一旦安裝應用程序就會被授予。
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>

暫無
暫無

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

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