这行在开发者网站上有描述,但我没有完全理解
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 种不同的方式来查询用户已安装的应用程序。
<queries>
中的包名中的元素AndroidManifest
. <manifest package="com.nikit.app">
<queries>
<package android:name="com.fake.app" />
<package android:name="com.fake.game" />
</queries>
...
</manifest>
想查询,但有一组具有类似功能的应用程序
你想查询然后你可以在里面使用一个 Intent 过滤器
<queries>
元素根据您的要求,就像它一样在下面的代码 fragment 中完成。
<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>
元素。 mimeType
,scheme
和 host
. 之前,您需要包含
QUERY_ALL_PACKAGES
中的许可AndroidManifest
.这是一个 normal
许可,并尽快授予随着应用程序的安装。
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
关于android - 如何获取 Android 11 中已安装应用程序的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67189934/