ขอสิทธิ์ฮาร์ดแวร์สำหรับแว่นตา AI

อุปกรณ์ XR ที่รองรับ
คำแนะนำนี้จะช่วยคุณสร้างประสบการณ์การใช้งานสำหรับอุปกรณ์ XR ประเภทนี้
แว่นตา AI

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

ประกาศสิทธิ์ในไฟล์ Manifest ของแอป

ก่อนที่จะขอสิทธิ์ คุณต้องประกาศสิทธิ์เหล่านั้นในไฟล์ Manifest ของแอปโดยใช้องค์ประกอบ <uses-permission> การประกาศนี้จะยังคงเหมือนเดิมไม่ว่าสิทธิ์จะเป็นสำหรับฟีเจอร์เฉพาะของโทรศัพท์หรือแว่นตา AI แต่คุณยังคงต้องขอสิทธิ์อย่างชัดเจนสำหรับฮาร์ดแวร์หรือฟังก์ชันการทำงานเฉพาะของแว่นตา

<manifest ...>
    <!-- Only declare permissions that your app actually needs. In this example,
    we declare permissions for the camera. -->
    <uses-permission android:name="android.permission.CAMERA"/>
    <application ...>
        ...
    </application>
</manifest>

ลงทะเบียนตัวเรียกใช้สิทธิ์

หากต้องการขอสิทธิ์สำหรับแว่นตา AI ก่อนอื่นคุณต้องใช้ ActivityResultLauncher กับเมธอด ProjectedPermissionsResultContract เพื่อลงทะเบียนสิทธิ์ launcher

// Register the permissions launcher using the ProjectedPermissionsResultContract.
private val requestPermissionLauncher: ActivityResultLauncher<List<ProjectedPermissionsRequestParams>> =
    registerForActivityResult(ProjectedPermissionsResultContract()) { results ->
        if (results[Manifest.permission.CAMERA] == true) {
            isPermissionDenied = false
            initializeGlassesFeatures()
        } else {
            // Handle permission denial.
            isPermissionDenied = true
        }
    }

ประเด็นสำคัญเกี่ยวกับโค้ด

สร้างฟังก์ชันคำขอ

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

private fun requestHardwarePermissions() {
    val params = ProjectedPermissionsRequestParams(
        permissions = listOf(Manifest.permission.CAMERA),
        rationale = "Camera access is required to overlay digital content on your physical environment."
    )
    requestPermissionLauncher.launch(listOf(params))
}

ประเด็นสำคัญเกี่ยวกับโค้ด

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

สร้างฟังก์ชันตรวจสอบสิทธิ์

จากนั้นคุณจะสร้างฟังก์ชันที่ตรวจสอบได้ว่าผู้ใช้ได้ให้สิทธิ์แก่แอปของคุณหรือไม่

private fun hasCameraPermission(): Boolean {
    return ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) ==
            PackageManager.PERMISSION_GRANTED
}

เพิ่มตรรกะคำขอสิทธิ์

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

if (hasCameraPermission()) {
    initializeGlassesFeatures()
} else {
    requestHardwarePermissions()
}

ประเด็นสำคัญเกี่ยวกับโค้ด

ทําความเข้าใจโฟลว์ของผู้ใช้ในการขอสิทธิ์

เมื่อคุณเปิดใช้คำขอสิทธิ์โดยใช้วิธี ProjectedPermissionsResultContract ระบบจะเริ่มขั้นตอนของผู้ใช้ที่ประสานกัน ทั้งในแว่นตา AI และโทรศัพท์

ในระหว่างโฟลว์ผู้ใช้ของสิทธิ์ แอปและผู้ใช้จะได้รับสิ่งต่อไปนี้

  1. ในแว่นตา AI: กิจกรรมจะปรากฏในอุปกรณ์ที่ฉายภาพ (แว่นตา) โดยแนะนำให้ผู้ใช้ดูโทรศัพท์เพื่อดำเนินการต่อ

  2. ในโทรศัพท์: ในเวลาเดียวกัน กิจกรรมจะเปิดขึ้นในอุปกรณ์โฮสต์ (โทรศัพท์) หน้าจอนี้จะแสดงสตริงเหตุผลที่คุณระบุและให้ตัวเลือกแก่ผู้ใช้ในการดำเนินการต่อหรือยกเลิก

  3. ในโทรศัพท์: หากผู้ใช้ยอมรับเหตุผล กล่องโต้ตอบสิทธิ์ของระบบ Android ที่แก้ไขแล้วจะปรากฏในโทรศัพท์เพื่อแจ้งให้ผู้ใช้ทราบว่าตนกำลังให้สิทธิ์สำหรับอุปกรณ์แว่นตา AI (ไม่ใช่โทรศัพท์) และผู้ใช้สามารถให้หรือปฏิเสธสิทธิ์อย่างเป็นทางการได้

  4. การรับผลลัพธ์: หลังจากที่ผู้ใช้เลือกตัวเลือกสุดท้ายแล้ว ระบบจะปิดกิจกรรมทั้งในโทรศัพท์และแว่นตา AI จากนั้นระบบจะเรียกใช้ Callback ของ ActivityResultLauncher พร้อมกับแมปที่มี สถานะที่ได้รับสำหรับสิทธิ์ที่ขอแต่ละรายการ