Hardwareberechtigungen für KI-Brillen anfordern

XR‑Geräte, für die der Leitfaden gilt
Dieser Leitfaden hilft Ihnen dabei, Erlebnisse für die folgenden Arten von XR-Geräten zu entwickeln.
KI‑Brillen

Wie bei einem Smartphone ist für den Zugriff auf sensible Hardware wie die Kamera und das Mikrofon von KI‑Brillen die ausdrückliche Einwilligung des Nutzers erforderlich. Diese Berechtigungen gelten als brillenspezifische Berechtigungen und müssen von Ihrer App zur Laufzeit angefordert werden, auch wenn sie bereits die entsprechenden Berechtigungen auf dem Smartphone hat.

Berechtigungen im Manifest Ihrer App deklarieren

Bevor Sie Berechtigungen anfordern, müssen Sie sie in der Manifestdatei Ihrer App mit dem Element <uses-permission> deklarieren. Diese Deklaration bleibt gleich, unabhängig davon, ob die Berechtigung für ein Smartphone oder eine KI‑Brillen-spezifische Funktion gilt. Sie müssen sie jedoch weiterhin explizit für brillenspezifische Hardware oder Funktionen anfordern.

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

Berechtigungsstarter registrieren

Wenn Sie Berechtigungen für KI‑Brillen anfordern möchten, verwenden Sie zuerst das ActivityResultLauncher mit der Methode ProjectedPermissionsResultContract, um den Berechtigungs starter zu registrieren.

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

Wichtige Punkte zum Code

Anforderungsfunktion erstellen

Als Nächstes erstellen Sie eine Funktion, mit der der Berechtigungsstarter Ihrer App die Berechtigungen zur Laufzeit vom Nutzer anfordern kann.

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

Wichtige Punkte zum Code

  • Die requestHardwarePermissions Funktion erstellt ein ProjectedPermissionsRequestParams Objekt. Dieses Objekt bündelt die Liste der Berechtigungen, die Ihre App benötigt, und die für den Nutzer sichtbare Begründung. Die Begründung sollte klar und prägnant sein, um zu erklären, warum Ihre App diese Berechtigungen benötigt.
  • Wenn Sie launch für den Starter aufrufen, wird der Nutzerablauf für die Berechtigungsanfrage ausgelöst.
  • Ihre App sollte sowohl gewährte als auch verweigerte Ergebnisse im Callback des Starters problemlos verarbeiten können.

Funktion zur Berechtigungsprüfung erstellen

Als Nächstes erstellen Sie eine Funktion, mit der geprüft werden kann, ob der Nutzer Ihrer App Berechtigungen gewährt hat.

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

Logik für Berechtigungsanfrage hinzufügen

Erstellen Sie schließlich die Logik, mit der diese Funktionen verwendet werden, um die Berechtigungen zur Laufzeit zu prüfen und anzufordern.

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

Wichtige Punkte zum Code

  • Wenn der Nutzer Ihrer App bereits die erforderlichen Berechtigungen gewährt hat, wird die Funktion initializeGlassesFeatures aufgerufen, um die App zu initialisieren. Diese Funktion ist als Teil der Aktivität Ihrer App für KI Brillen definiert.

Nutzerablauf für Berechtigungsanfrage

Wenn Sie eine Berechtigungsanfrage mit der ProjectedPermissionsResultContract Methode starten, initiiert das System einen koordinierten Nutzerablauf sowohl auf der KI‑Brille als auch auf dem Smartphone.

Während des Nutzerablaufs für Berechtigungen können Ihre App und der Nutzer Folgendes erwarten:

  1. Auf der KI‑Brille: Auf dem projizierten Gerät (Brille) wird eine Aktivität angezeigt, in der der Nutzer aufgefordert wird, auf sein Smartphone zu schauen, um fortzufahren.

  2. Auf dem Smartphone: Gleichzeitig wird eine Aktivität auf dem Hostgerät (Smartphone) gestartet. Auf diesem Bildschirm wird die von Ihnen angegebene Begründung angezeigt und der Nutzer hat die Möglichkeit, fortzufahren oder abzubrechen.

  3. Auf dem Smartphone: Wenn der Nutzer die Begründung akzeptiert, wird auf dem Smartphone ein geändertes Android Systemberechtigungsdialogfeld angezeigt, in dem der Nutzer darüber informiert wird, dass er die Berechtigung für das KI‑Brillengerät (nicht für das Smartphone) erteilt. Der Nutzer kann die Berechtigung dann formell gewähren oder verweigern.

  4. Ergebnis erhalten: Nachdem der Nutzer seine endgültige Entscheidung getroffen hat, werden die Aktivitäten sowohl auf dem Smartphone als auch auf der KI‑Brille beendet. Ihr ActivityResultLauncher-Callback wird dann mit einer Zuordnung aufgerufen, die den gewährten Status für jede angeforderte Berechtigung enthält.