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
- Der Code erstellt einen
ActivityResultLaunchermit derProjectedPermissionsResultContractMethode. Der Callback empfängt eine Zuordnung von Berechtigungsnamen zu ihrem gewährten Status. - Sie müssen angeben, welche Berechtigungen Ihre App benötigt, z. B.
Manifest.permission.CAMERAoderManifest.permission.RECORD_AUDIO.
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
requestHardwarePermissionsFunktion erstellt einProjectedPermissionsRequestParamsObjekt. 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
launchfü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
initializeGlassesFeaturesaufgerufen, 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:
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.
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.
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.
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.