在 Android 9 以下版本中,系統會將螢幕緩衝區擷取權限 (READ_FRAME_BUFFER
、CAPTURE_VIDEO_OUTPUT
和 CAPTURE_SECURE_VIDEO_OUTPUT
) 授予具有任一簽章或特權權限的應用程式。這項功能可啟用流暢的螢幕緩衝區擷取活動,例如擷取螢幕截圖或錄製裝置的螢幕內容。
從 Android 10 開始,為避免裝置螢幕內容遭到靜默存取,系統不會將視訊擷取權限授予特權應用程式。沒有使用者同意聲明會限制存取,且僅將權限授予具有簽章權限的應用程式。如果裝置製造商執行的是仰賴這項靜音擷取功能,就會受到這項規定影響。
自 Android 10 起,如果您沒有列出的螢幕緩衝區擷取簽章權限,應用程式就無法在未經使用者同意的情況下擷取螢幕緩衝區。為確保您具備所需權限,請在資訊清單檔案中搜尋先前列出的簽署權限。將所有受影響的特殊權限應用程式 (在搜尋中找到) 遷移至 MediaProjectionManager 類別,這樣一來,任何第三方應用程式都能在獲得使用者同意的情況下,無須取得權限即可擷取螢幕緩衝區。這個流程會顯示對話方塊,在應用程式啟動螢幕截圖功能時,提示使用者允許螢幕截圖。在 Android 10 中,對話方塊的新功能包括:
- 透過「Cast」圖示提供更明顯的關聯。
- 提供有關可存取資料機密性的更多資訊。
- 防止使用者在日後啟動時隱藏對話方塊:每次都會顯示對話方塊。