Android 13 และ Wear OS 4 เพิ่มวิธีให้แอปเข้าถึงเซ็นเซอร์ร่างกาย เช่น เป็นอัตราการเต้นของหัวใจจากพื้นหลัง รูปแบบการเข้าถึงใหม่นี้คล้ายกับ ที่เปิดตัวการเข้าถึงตำแหน่งในเบื้องหลังใน Android 10 (API ระดับ 29)
หากแอปจำเป็นต้องเข้าถึงข้อมูลเซ็นเซอร์ร่างกายในเบื้องหลัง เช่น เมื่อ
ตรวจสอบข้อมูลบริการสุขภาพในเบื้องหลัง คุณต้องส่งคำขอ
สิทธิ์ BODY_SENSORS_BACKGROUND
ตามที่อธิบายไว้ในหน้าแนวทางปฏิบัติแนะนำด้านความเป็นส่วนตัว แอปควรขอเฉพาะ
สิทธิ์ BODY_SENSORS_BACKGROUND
เมื่อมีความสําคัญต่อผู้ใช้
และควรเปิดเผยข้อมูลนี้ให้ผู้ใช้ทราบอย่างเหมาะสม
กระบวนการสำหรับการให้สิทธิ์จะขึ้นอยู่กับ SDK เป้าหมายของแอป เวอร์ชัน
แอปกำหนดเป้าหมายเป็น Android 13 ขึ้นไป
นอกเหนือจากสิทธิ์ BODY_SENSORS
ที่มีอยู่แล้ว ให้ประกาศสิทธิ์
สิทธิ์ BODY_SENSORS_BACKGROUND
ในไฟล์ Manifest
<uses-permission android:name="android.permission.BODY_SENSORS">
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND">
จากนั้นแอปของคุณต้องขอสิทธิ์ในการดําเนินการแยกต่างหาก ดังนี้
- ตรวจสอบว่า
BODY_SENSORS
ได้รับอนุญาตหรือไม่ หากไม่ใช่ ให้ขอสิทธิ์ - ตรวจสอบว่า
BODY_SENSORS_BACKGROUND
ได้รับอนุญาตหรือไม่ หากไม่ ให้ขอ สิทธิ์
ข้อควรระวัง: หากแอปขอสิทธิ์เซ็นเซอร์ร่างกายทั้ง 2 แบบที่ ในเวลาเดียวกัน ระบบจะไม่สนใจคำขอ และจะไม่ให้สิทธิ์แอป สิทธิ์
ใน Android 13 (API ระดับ 33) ขึ้นไป กล่องโต้ตอบสิทธิ์รันไทม์จะไม่
ให้ใส่ปุ่ม "อนุญาตตลอด" ตัวเลือก แต่ผู้ใช้ต้องเปิดใช้การตั้งค่าตลอดเวลา
การเข้าถึงเซ็นเซอร์ที่พื้นหลังจากการตั้งค่าระบบดังที่แสดงในรูปที่ 1 เมื่อคุณ
ขอสิทธิ์ BODY_SENSORS_BACKGROUND
หลังจากให้สิทธิ์
สิทธิ์BODY_SENSORS
คุณสามารถช่วยให้ผู้ใช้ไปยังหน้าการตั้งค่านี้ได้ ถ้า
ผู้ใช้ปฏิเสธการเข้าถึงตลอดเวลา พวกเขาควรสามารถใช้
แอป
กำหนดเป้าหมายแอปไปยังเวอร์ชันก่อนหน้า
เมื่อแอปกําหนดเป้าหมายเป็น Android เวอร์ชันเก่ากว่า Android 13
ระบบไม่ให้สิทธิ์เข้าถึงโดยอัตโนมัติเมื่อคุณขอ BODY_SENSORS
สิทธิ์ แต่ผู้ใช้จะเห็นกล่องโต้ตอบของระบบที่เชิญให้ผู้ใช้ไปยัง
การตั้งค่าสิทธิ์เซ็นเซอร์ของแอปดังที่แสดงในรูปที่ 2 จากนั้นผู้ใช้ต้อง
เปิดใช้งานเซ็นเซอร์พื้นหลังในหน้าการตั้งค่า
ผู้ใช้ปฏิเสธการเข้าถึงเมื่ออยู่เบื้องหลังได้ ให้ผลเช่นเดียวกับการเพิกถอน
BODY_SENSORS
ได้ขณะที่แอปทำงานอยู่เบื้องหลัง เมื่อ
แอปใช้ PassiveMonitoringClient
โดยไม่มีสิทธิ์เข้าถึงในเบื้องหลัง
และไปทำงานในเบื้องหลัง แอปจะเสียสิทธิ์เข้าถึง BODY_SENSORS
และ
มีการเรียกใช้ Callback onPermissionLost()
ด้วยเหตุนี้ ระบบจึง
คุณควรปฏิบัติตามแนวทางปฏิบัติแนะนำในการขอรันไทม์
สิทธิ์