Prośba o uprawnienia do sprzętu okularów AI

Odpowiednie urządzenia XR
Te wskazówki pomogą Ci tworzyć aplikacje na te typy urządzeń XR.
Okulary AI

Podobnie jak w przypadku telefonu, dostęp do wrażliwych elementów sprzętowych, takich jak aparat i mikrofon w okularach z AI, wymaga wyraźnej zgody użytkownika. Są to uprawnienia specyficzne dla okularów, o które aplikacja musi poprosić w czasie działania, nawet jeśli ma już odpowiednie uprawnienia na telefonie.

Zadeklaruj uprawnienia w manifeście aplikacji.

Zanim poprosisz o uprawnienia, musisz zadeklarować je w pliku manifestu aplikacji za pomocą elementu <uses-permission>. Deklaracja pozostaje taka sama niezależnie od tego, czy uprawnienia dotyczą telefonu, czy funkcji okularów z AI, ale nadal musisz wyraźnie poprosić o nie w przypadku sprzętu lub funkcji specyficznych dla okularów.

<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>

Zarejestruj moduł uruchamiający uprawnienia

Aby poprosić o uprawnienia do okularów z AI, najpierw użyj metody ActivityResultLauncher z metodą ProjectedPermissionsResultContract, aby zarejestrować moduł uruchamiający uprawnienia.

// 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
        }
    }

Najważniejsze informacje o kodzie

Tworzenie funkcji żądania

Następnie utworzysz funkcję, która będzie używać modułu uruchamiającego uprawnienia aplikacji do wysyłania próśb o uprawnienia do użytkownika w czasie działania.

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))
}

Najważniejsze informacje o kodzie

  • Funkcja requestHardwarePermissions tworzy obiekt ProjectedPermissionsRequestParams. Ten obiekt zawiera listę uprawnień, których potrzebuje aplikacja, oraz uzasadnienie widoczne dla użytkownika. Wyjaśnij w jasny i zwięzły sposób, dlaczego Twoja aplikacja potrzebuje tych uprawnień.
  • Wywołanie launch w programie uruchamiającym powoduje uruchomienie procesu prośby o uprawnienia od użytkownika.
  • Aplikacja powinna prawidłowo obsługiwać wyniki przyznania i odmowy w wywołaniu zwrotnym programu uruchamiającego.

Tworzenie funkcji sprawdzania uprawnień

Następnie utworzysz funkcję, która będzie sprawdzać, czy użytkownik przyznał aplikacji uprawnienia.

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

Dodaj logikę prośby o uprawnienia

Na koniec utwórz logikę, która używa tych funkcji do sprawdzania i żądania uprawnień w czasie działania.

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

Najważniejsze informacje o kodzie

Poznaj proces prośby o uprawnienia

Gdy wyślesz prośbę o uprawnienia za pomocą metody ProjectedPermissionsResultContract, system zainicjuje skoordynowany proces interakcji z użytkownikiem zarówno na okularach AI, jak i na telefonie.

Podczas procesu przyznawania uprawnień aplikacja i użytkownik mogą oczekiwać tych działań:

  1. Na okularach z AI: na wyświetlaczu okularów pojawia się aktywność, która instruuje użytkownika, aby spojrzał na telefon, aby kontynuować.

  2. Na telefonie: jednocześnie na urządzeniu hosta (telefonie) uruchamia się aktywność. Na tym ekranie wyświetla się podany przez Ciebie ciąg znaków z uzasadnieniem. Użytkownik może kontynuować lub anulować działanie.

  3. Na telefonie: jeśli użytkownik zaakceptuje uzasadnienie, na telefonie pojawi się zmodyfikowane okno uprawnień systemowych Androida, w którym będzie informacja, że użytkownik przyznaje uprawnienia urządzeniu z okularami AI (a nie telefonowi). Użytkownik może formalnie przyznać lub odrzucić uprawnienia.

  4. Otrzymywanie wyniku: po dokonaniu ostatecznego wyboru przez użytkownika działania na telefonie i okularach z AI zostaną zamknięte. Następnie wywoływane jest wywołanie zwrotne ActivityResultLauncher z mapą zawierającą stan przyznania każdego z wymaganych uprawnień.