ตัวชี้วัดความเป็นส่วนตัว

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

Android 12 มอบความโปร่งใสให้กับผู้ใช้ด้วยการแสดงตัวบ่งชี้เมื่อแอปใช้แหล่งข้อมูล ส่วนตัว ผ่านกล้องและ สิทธิ์ในการทำงานของแอป ไมโครโฟน บันทึกการดำเนินการของแอปเข้าถึง API ที่ป้องกันด้วยสิทธิ์รันไทม์

App-op ติดตามทั้งสถานะกิจกรรมและจำนวนการเรียก API แต่ละรายการ และโต้ตอบกับตัวบ่งชี้ไมโครโฟนและกล้องใน Android 12 เพื่อแสดงให้ผู้ใช้เห็นเมื่อแอปเข้าถึงข้อมูลเสียงและกล้องบนอุปกรณ์ของตน เมื่อผู้ใช้คลิกตัวบ่งชี้ไมโครโฟนหรือกล้อง จะเห็นว่าแอปใดเข้าถึงข้อมูลของตนได้ คุณลักษณะนี้จำเป็นสำหรับ OEM ทั้งหมด

ข้อกำหนดการมองเห็นตัวบ่งชี้

ข้อกำหนดเหล่านี้เป็นข้อกำหนดสำหรับตัวบ่งชี้ไมโครโฟนและกล้องบนอุปกรณ์ที่ใช้ Android 12 ขึ้นไป:

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

การใช้งานและคุณสมบัติ

ใน Android 12 UI จะแยกความแตกต่างระหว่างการใช้งานที่กำลังรันและการใช้งานล่าสุด การใช้งานจะถือว่า "ใช้งานอยู่" หากระบบทำเครื่องหมายว่า "กำลังทำงาน" หรือมีอายุน้อยกว่า 5 วินาที

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

Microphone and camera in-use indicators showing that access is active

รูปที่ 1 สัญลักษณ์แสดงการใช้งานไมโครโฟนและกล้องแสดงการเข้าถึงที่ใช้งานอยู่ (มุมบนขวา)

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

เมื่อผู้ใช้แตะตัวบ่งชี้ กล่องโต้ตอบจะคลี่ออก เพื่อแสดงว่าแอปกำลังใช้กล้อง ไมโครโฟน หรือทั้งสองอย่างอยู่

Indicators for both active and recent access, and whether the access was from camera or microphone

รูปที่ 2 ตัว บ่งชี้การเข้าถึงที่ใช้งานอยู่และล่าสุด

รูปภาพใน รูปที่ 2 แสดงตัวบ่งชี้การเข้าถึงที่ใช้งานอยู่เมื่อมีการเข้าถึงข้อมูลในช่วง 5 วินาทีที่ผ่านมาโดยแอปที่รันอยู่

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

ส่งมอบและเปิดใช้งาน

คลาส PermissionManager จัดเตรียมวิธีการเติมไดอะล็อก ซึ่งอยู่ใน System UI

  • UI ของระบบตอบสนองต่อสวิตช์การกำหนดค่าอุปกรณ์: privacy/mic_camera_indicators_enabled
  • จำเป็นต้องมีสวิตช์เนื่องจากมียานพาหนะจัดส่งสองคันแยกกัน ตามลำดับนี้:
    1. ส่งมอบ.
    2. เปิดใช้งาน.
  • UI ของระบบต้องไม่ขัดข้องหากวิธีการใน PermissionManager ไม่สามารถให้ข้อมูลที่จำเป็นได้

การไหลของกระบวนการ

ฟังก์ชันการทำงานของตัวบ่งชี้สิทธิ์มีสามส่วนหลัก:

  • แอพพลิเคชั่น
  • ตัวบ่งชี้ (จัดการโดย SystemUI)
  • วิธีพิจารณาว่าแอปใดกำลังใช้ข้อมูล

PermissionController มีกลไกในการพิจารณาว่าแอพใดกำลังใช้ข้อมูล SystemUI รับฟังแอปที่ใช้ข้อมูลส่วนตัว SystemUI จะแสดงไอคอนในแถบนำทางด้านบนที่สอดคล้องกับสิทธิ์ที่ใช้ PermissionController จะแสดงข้อมูลเกี่ยวกับการใช้งานเมื่อผู้ใช้คลิกที่ไอคอน

Process flow for Permission Indicator functions

รูปที่ 3 ส่วนประกอบของระบบและโฟลว์การเปลี่ยน (UI)

การเปลี่ยนหมายเลขใน รูปที่ 3 อธิบายไว้ด้านล่าง:

1- แอปร้องขอข้อมูลส่วนตัวจากระบบ

2- ระบบตรวจสอบสิทธิ์ หากได้รับอนุญาต ระบบจะแจ้งให้ผู้ให้บริการข้อมูลทราบ และบันทึกการใช้งานในการดำเนินการของแอป

3- ผู้ให้บริการข้อมูลให้ข้อมูลแก่แอป

4-5 ผู้ใช้คลิกที่ไอคอน UI ของระบบร้องขอข้อมูลจาก PermissionManager และนำเสนอกล่องโต้ตอบแก่ผู้ใช้

รายละเอียดกระบวนการ

  1. แอปใช้ไมโครโฟนและกล้อง โดยเรียก AppOpsManager.startOp , stopOp และ (หรือ) noteOp สิ่งนี้จะสร้างบันทึก app-op ในเซิร์ฟเวอร์ระบบ
  2. UI ของระบบจะรับฟัง app-ops ใหม่โดยใช้ AppOpsManager.OnOpActiveChangedInternalListener และ OnOpNotedListener Listener เมื่อมีการใช้งานใหม่เข้ามา (ผ่านการเรียกไปยัง startOp หรือ noteOp ) System UI จะตรวจสอบว่าการใช้งานนั้นมาจากแอประบบ
  3. หาก System UI ตรวจสอบการใช้งานแอประบบ และหากเป็นการใช้งานสำหรับไมโครโฟน System UI จะตรวจสอบว่าไมโครโฟนปิดเสียงอยู่หรือไม่
  4. หาก System UI ตรวจสอบการใช้งานแอปที่ไม่ใช่ระบบ (และสำหรับการใช้งานไมโครโฟน แสดงว่าไมโครโฟนถูกเปิดเสียง สำหรับการใช้งานกล้อง แสดงว่ากล้องเปิดอยู่) ก็จะแสดงไอคอนที่สะท้อนถึงการใช้งานดังกล่าว

หาก System UI ได้รับ noteOp ซึ่งไม่มีระยะเวลา มันจะแสดงไอคอนเป็นเวลาอย่างน้อย 5 วินาที มิฉะนั้น ไอคอนจะแสดงจนกว่าจะได้รับ stopOp หรือเป็นเวลา 5 วินาที แล้วแต่ว่าเวลาใดจะยาวนานกว่า ผู้ใช้คลิกที่ไอคอนจะเริ่มต้นเจตนาที่จะไปที่ PermissionController เพื่อเริ่มกล่องโต้ตอบ

PermissionController โหลดการใช้งานล่าสุดทั้งหมดสำหรับไมโครโฟนและกล้อง จะตรวจสอบว่ามีรายการใดที่กำลังทำงานอยู่หรือทำงานภายในกรอบเวลาที่กำหนดโดย UI ของระบบหรือไม่ หากพบว่าตรงกัน ระบบจะแสดงชื่อแอปที่ใช้สิทธิ์ และสิทธิ์ที่แอปใช้

เนื่องจากการเปลี่ยนแปลงใน Android 12 ขึ้นไป แอปบางแอปจึงต้องเปลี่ยนลักษณะการทำงานหรือใช้ลักษณะพิเศษ

ระบบโทรศัพท์ต้องใช้การใช้สิทธิ์ (เพื่อพิจารณากลุ่มไมโครโฟนแยกต่างหากที่ใช้ในการโทรศัพท์) ขณะทำงานกับแอป Android Google Search (AGSA) และบริการมือถือของ Google (GMS)