Proś o uprawnienia do sprzętu w przypadku okularów audio i okularów wyświetlających

Obsługiwane urządzenia z XR
Te wskazówki pomogą Ci tworzyć aplikacje na te typy urządzeń z XR.
Okulary audio i
wyświetlające obraz

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

Deklarowanie uprawnień w pliku manifestu 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 uprawnienie dotyczy telefonu, czy funkcji specyficznej dla okularów, 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>

Rejestrowanie narzędzia do uruchamiania uprawnień

Aby poprosić o uprawnienia do okularów audio i okularów wyświetlających obraz, najpierw użyj ActivityResultLauncher z metodą ProjectedPermissionsResultContract , aby zarejestrować narzędzie do uruchamiania uprawnień.

// 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 używa narzędzia do uruchamiania uprawnień aplikacji, aby poprosić użytkownika o uprawnienia 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 Twoja aplikacja, oraz uzasadnienie widoczne dla użytkownika. Uzasadnienie powinno być jasne i zwięzłe, aby wyjaśnić, dlaczego aplikacja potrzebuje tych uprawnień.
  • Wywołanie launch w programie uruchamiającym powoduje uruchomienie procesu prośby o uprawnienia użytkownika.
  • Aplikacja powinna prawidłowo obsługiwać wyniki przyznania i odrzucenia uprawnień w wywołaniu zwrotnym narzędzia do uruchamiania.

Tworzenie funkcji sprawdzania uprawnień

Następnie utworzysz funkcję, która może sprawdzić, czy użytkownik przyznał Twojej aplikacji uprawnienia.

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

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

Omówienie procesu żądania uprawnień

Gdy uruchomisz prośbę o uprawnienia za pomocą metody ProjectedPermissionsResultContract, system zainicjuje skoordynowany proces użytkownika na okularach i telefonie.

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

  1. Na okularach: na urządzeniu wyświetlającym obraz (okularach) pojawia się aktywność, która informuje użytkownika, że aby kontynuować, musi spojrzeć na telefon.

  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 uzasadnienia i użytkownik może kontynuować lub anulować.

  3. Na telefonie: jeśli użytkownik zaakceptuje uzasadnienie, na telefonie pojawi się zmodyfikowane okno systemowe z prośbą o uprawnienia, które informuje użytkownika, że przyznaje on uprawnienia do okularów (a nie do telefonu), i użytkownik może formalnie przyznać lub odmówić uprawnień.

  4. Otrzymywanie wyniku: gdy użytkownik podejmie ostateczną decyzję, aktywności na telefonie i okularach zostaną zamknięte. Następnie wywoływane jest wywołanie zwrotne ActivityResultLauncher z mapą zawierającą stan przyznania każdego żądanego uprawnienia.