系统会自动让部分应用可见,以便您的应用可与其交互,而无需声明 <queries>
元素。此行为有助于支持基本功能和常见用例。
自动可见的应用类型
尤其要注意,即使您的应用以 Android 11(API 级别 30)或更高版本为目标平台,以下类型的应用也始终对您的应用可见:
- 您自己的应用。
- 实现 Android 核心功能的某些系统软件包,例如媒体提供程序。
- 安装了您应用的应用。
- 使用
startActivityForResult()
方法在您的应用中启动 activity 的任何应用,正如如何获取 activity 的结果这一指南中所述。 - 启动或绑定到您应用中的某项服务的任何应用。
- 访问您应用中的 content provider 的任何应用。
- 具有 content provider 的任何应用,其中您的应用已被授予 URI 权限来访问该 content provider。
- 接收您应用的输入的任何应用。这种情况仅适用于您的应用作为输入法应用提供输入。
自动可见的系统软件包
实现 Android 核心功能的某些系统软件包会自动对您的应用可见,即使您的应用以 Android 11 或更高版本为目标平台也是如此。这组特定的软件包取决于运行您应用的设备。
如需查看特定设备的完整软件包列表,请在开发机器上的终端中运行以下命令:
adb shell dumpsys package queries
在命令输出中,找到 forceQueryable
部分。本部分包含设备上自动对您的应用可见的软件包列表。