在 Android 9 及更低版本中,螢幕緩衝區擷取權限( READ_FRAME_BUFFER
、 CAPTURE_VIDEO_OUTPUT
和CAPTURE_SECURE_VIDEO_OUTPUT
)被授予具有簽署或特權權限的應用程式。這使得無縫螢幕緩衝區擷取活動成為可能,例如截取螢幕截圖或記錄裝置的螢幕內容。
從 Android 10 開始,為了防止靜默存取裝置的螢幕內容,不會向特權應用程式授予視訊擷取權限。未經用戶同意的存取受到限制,並且僅授予具有簽名權限的應用程式。依賴此靜默擷取功能運行特權應用程式的裝置製造商會受到此要求的影響。
從 Android 10 開始,如果您沒有列出的螢幕緩衝區擷取簽名權限,則您的應用程式無法在未經使用者同意的情況下擷取螢幕緩衝區。為了確保您擁有所需的權限,請在清單檔案中搜尋前面列出的簽名權限。將所有受影響的特權應用程式(如您在搜尋中找到的)遷移到MediaProjectionManager類,該類允許任何第三方應用程式在未經用戶同意的情況下捕獲螢幕緩衝區。此流程會顯示一個對話框,提示使用者在應用程式啟動時允許螢幕擷取。在 Android 10 中,對話方塊的新功能包括以下內容:
- 提供與Cast圖示更明顯的關聯。
- 提供有關可存取資料的敏感性的更多資訊。
- 防止使用者在將來啟動時隱藏該對話框:該對話方塊每次都會顯示。