จำกัดการอ่านหน้าจอ

ใน Android 9 และต่ำกว่า การให้สิทธิ์บัฟเฟอร์หน้าจอ (READ_FRAME_BUFFER, CAPTURE_VIDEO_OUTPUT และ CAPTURE_SECURE_VIDEO_OUTPUT) แก่แอปที่มีลายเซ็นอย่างใดอย่างหนึ่งหรือสิทธิ์ที่เป็นสิทธิ์เฉพาะบุคคล ซึ่งช่วยให้กิจกรรมการจับภาพบัฟเฟอร์หน้าจอเป็นไปอย่างราบรื่น เช่น การจับภาพหน้าจอ หรือการบันทึกเนื้อหาหน้าจอของอุปกรณ์

ตั้งแต่ Android 10 เป็นต้นไป ระบบจะไม่ให้สิทธิ์จับภาพวิดีโอแก่แอปที่มีสิทธิ์เพื่อป้องกันการเข้าถึงเนื้อหาหน้าจอของอุปกรณ์โดยไม่แสดงข้อความแจ้ง การเข้าถึงโดยไม่ได้รับความยินยอมจากผู้ใช้จะถูกจํากัด และได้รับอนุญาตเฉพาะสําหรับแอปที่มีสิทธิ์ลายเซ็นเท่านั้น ผู้ผลิตอุปกรณ์ที่เรียกใช้แอปที่ได้รับสิทธิ์และใช้ฟังก์ชันการจับภาพแบบไม่มีเสียงนี้จะได้รับผลกระทบจากข้อกำหนดนี้

ใน Android 10 หากไม่มีสิทธิ์ลายเซ็นการจับภาพบัฟเฟอร์หน้าจอที่ระบุไว้ แอปของคุณจะจับภาพบัฟเฟอร์หน้าจอโดยไม่ได้รับความยินยอมจากผู้ใช้ไม่ได้ หากต้องการตรวจสอบว่าคุณมีสิทธิ์ที่จำเป็น ให้ค้นหาสิทธิ์ลายเซ็นที่ระบุไว้ก่อนหน้านี้ในไฟล์ Manifest ย้ายข้อมูลแอปที่มีสิทธิ์ทั้งหมดที่ได้รับผลกระทบ (ตามที่พบในการค้นหา) ไปยังคลาส MediaProjectionManager ซึ่งอนุญาตให้แอปของบุคคลที่สามจับภาพบัฟเฟอร์หน้าจอได้โดยไม่ต้องขอสิทธิ์ แต่ต้องได้รับความยินยอมจากผู้ใช้ ขั้นตอนนี้จะแสดงกล่องโต้ตอบที่แจ้งให้ผู้ใช้อนุญาตให้จับภาพหน้าจอเมื่อแอปเริ่มดำเนินการ ใน Android 10 ฟีเจอร์ใหม่ของกล่องโต้ตอบมีดังนี้

  • แสดงการเชื่อมโยงที่มองเห็นได้มากขึ้นด้วยไอคอน Cast
  • ให้ข้อมูลเพิ่มเติมเกี่ยวกับความละเอียดอ่อนของข้อมูลที่เข้าถึงได้
  • ป้องกันไม่ให้ผู้ใช้ซ่อนกล่องโต้ตอบในการเริ่มต้นใช้งานในอนาคต: กล่องโต้ตอบจะแสดงทุกครั้ง