受限屏幕读取

在 Android 9 及更低版本中,屏幕缓冲区捕获权限(READ_FRAME_BUFFERCAPTURE_VIDEO_OUTPUTCAPTURE_SECURE_VIDEO_OUTPUT)被授予给拥有签名或特权权限之一的应用。这支持无缝的屏幕缓冲区捕获活动,例如截取屏幕截图或录制设备屏幕内容。

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

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

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