受限的屏幕读取

在 Android 9 及更低版本中,会向具有签名权限或特许权限的应用授予屏幕缓冲区捕获权限(READ_FRAME_BUFFERCAPTURE_VIDEO_OUTPUTCAPTURE_SECURE_VIDEO_OUTPUT)。这支持进行无缝的屏幕缓冲区捕获 activity,例如截取屏幕截图或录制设备的屏幕内容。

从 Android 10 开始,为防止应用以静默方式访问设备的屏幕内容,不再向特权应用授予视频捕获权限。未经用户同意的访问会受到限制,并仅向具有签名权限的应用授予。运行依赖此静默捕获功能的特权应用的设备制造商会受到这项要求的影响。

从 Android 10 开始,如果您没有列出的屏幕缓冲区捕获签名权限,则您的应用在未经用户同意的情况下无法捕获屏幕缓冲区。要确保您拥有所需权限,请在清单文件中搜索之前列出的签名权限。将所有受影响的特权应用(可以通过搜索找到)迁移到 MediaProjectionManager 类,通过该类,任何第三方应用都可以在没有权限但征得用户同意的情况下捕获屏幕缓冲区。应用启动此流程时,它会显示一个对话框,提示用户允许屏幕捕获。在 Android 10 中,此对话框包含以下新功能:

  • 提供更明显的与投射图标的关联。
  • 提供有关数据(可以访问)敏感度的更多信息。
  • 防止用户在将来启动时隐藏该对话框:该对话框每次都会显示。