Berechtigungen unter Wear OS anfordern

Das Anfordern von Berechtigungen unter Wear OS ähnelt dem Anfordern von Berechtigungen in mobilen Apps. Es gibt aber einige zusätzliche Anwendungsfälle. In diesem Dokument wird davon ausgegangen, dass Sie wissen, wie Android-Berechtigungen funktionieren. Falls nicht, lesen Sie hier, wie Berechtigungen unter Android funktionieren.

Wie bei einer mobilen App müssen Nutzer einer Wear-App Berechtigungen erteilen, um auf bestimmte Funktionen zugreifen zu können. In Ihren Wear-Apps können Sie nützliche Funktionen bereitstellen, ohne Berechtigungen anzufordern.

Berechtigungsszenarien

Beim Anfordern von gefährlichen Berechtigungen unter Wear OS kann es mehrere Szenarien geben:

  • Die Wear-App fordert Berechtigungen für eine App an, die auf dem Wearable-Gerät ausgeführt wird.

  • Die Wear App fordert Berechtigungen für eine auf dem Smartphone ausgeführte App an.

  • Die Telefon-App fordert Berechtigungen für eine App an, die auf dem Wearable-Gerät ausgeführt wird.

  • Die Telefon-App fordert mehrere Berechtigungen an, die nur verwendet werden können, während das Wearable-Gerät verbunden ist.

Wenn Sie all diese Szenarien in einer funktionierenden Anwendung sehen möchten, sehen Sie sich das Beispiel ExcersizeSampleCompose auf GitHub an.

In den folgenden Abschnitten werden die einzelnen Szenarien erläutert. Ausführliche Informationen zum Anfordern von Berechtigungen finden Sie im Abschnitt Muster für Berechtigungsanfragen.

Wear-App fordert Wearable-Berechtigung an

Wenn die Wear-App eine Berechtigung für eine App anfordert, die auf dem Wearable-Gerät ausgeführt wird, zeigt das System ein Dialogfeld an, in dem der Nutzer zur Eingabe dieser Berechtigung aufgefordert wird. Fordern Sie in Ihrer Anwendung Berechtigungen nur dann an, wenn für den Nutzer klar ist, warum die Berechtigungen für einen bestimmten Vorgang erforderlich sind.

Lesen Sie sich die Berechtigungsgrundsätze durch, um dafür zu sorgen, dass Sie die bestmögliche Nutzerfreundlichkeit bieten. Prüfen Sie shouldShowRequestPermissionRationale() und geben Sie bei Bedarf zusätzliche Informationen an.

Wenn für eine App oder ein Zifferblatt mehr als eine Berechtigung gleichzeitig erforderlich ist, werden Berechtigungsanfragen nacheinander angezeigt.

Mehrere Berechtigungsbildschirme nacheinander.
Abbildung 1: Berechtigungsbildschirme werden nacheinander angezeigt.

Wear-App fordert Smartphone-Berechtigung an

Wenn die Wear-App eine Smartphone-Berechtigung anfordert – z. B. eine Wearable-App, die in der mobilen Version der App auf Fotos oder andere sensible Daten zugreifen möchte –, muss die Wear-App den Nutzer an das Smartphone senden, um die Berechtigung zu akzeptieren. Dort kann die Telefon-App dem Nutzer mithilfe einer Aktivität zusätzliche Informationen bereitstellen. Fügen Sie der Aktivität zwei Schaltflächen hinzu: eine zum Gewähren der Berechtigung und eine zum Ablehnen der Berechtigung.

Die Wear App leitet den Nutzer zum Gewähren der Berechtigung an das Smartphone weiter.
Abbildung 2: Senden Sie den Nutzer an das Smartphone, um die Berechtigung zu erteilen.

Telefon App fordert Wearable-Berechtigung an

Wenn der Nutzer eine Smartphone-App verwendet und die App eine Wearable-Berechtigung benötigt, z. B. um Musik vorab zu laden, falls die Verbindung zum Smartphone getrennt wird, sendet die Telefon-App den Nutzer an das Wearable-Gerät, um die Berechtigung zu akzeptieren. Die Wearable-Version der App verwendet die Methode requestPermissions(), um das Dialogfeld für Systemberechtigungen auszulösen.

Die Telefon-App sendet den Nutzer an das Wearable, um die Berechtigung zu erteilen.
Abbildung 3: Sende den Nutzer an das Wearable, um die Berechtigung zu erteilen.

Die Telefon App fordert mehrere Berechtigungen gleichzeitig an

Abbildung 4. Ein Berechtigungsdialogfeld, in dem ein Companion-Geräteprofil verwendet wird, um mehrere Berechtigungen in einer einzelnen Anfrage anzufordern.

Partner-Apps unter Android 12 (API-Level 31) und höher können Companion-Geräteprofile verwenden, um eine Verbindung zu einer Uhr herzustellen. Die Verwendung eines Profils vereinfacht den Registrierungsprozess, da das Gewähren von gerätetypspezifischen Berechtigungen in einem Schritt gebündelt wird.

Die Berechtigungen im Set werden der Companion-App gewährt, sobald das Gerät verbunden ist, und gelten nur, solange das Gerät verknüpft ist. Wenn Sie die App löschen oder die Verknüpfung aufheben, werden die Berechtigungen entfernt. Weitere Informationen findest du unter AssociationRequest.Builder.setDeviceProfile().

Berechtigungsanfragemuster

Es gibt verschiedene Muster, um Berechtigungen von Nutzern anzufordern. In der Reihenfolge ihrer Priorität werden sie:

  • Fragen Sie im Kontext, wenn die Berechtigung für eine bestimmte Funktionalität offensichtlich notwendig ist, aber nicht erforderlich ist, damit die App als Ganzes ausgeführt werden kann.

  • Wenn der Grund für das Anfordern der Berechtigung nicht offensichtlich ist und die Berechtigung nicht erforderlich ist, damit die App als Ganzes funktioniert, machen Sie dies im Kontext bekannt.

Diese Muster werden in den folgenden Abschnitten erläutert.

Im Kontext fragen

Fordern Sie Berechtigungen an, wenn für den Nutzer klar ist, warum die Berechtigung für einen bestimmten Vorgang benötigt wird. Die Wahrscheinlichkeit, dass Nutzer eine Berechtigung erteilen, ist größer, wenn sie die Verbindung zu der Funktion verstehen, die sie verwenden möchten.

Beispielsweise kann eine App den Standort des Nutzers anfordern, um POIs in der Nähe anzuzeigen. Wenn der Nutzer tippt, um nach Orten in der Nähe zu suchen, kann die App sofort die Berechtigung zur Standortermittlung anfordern, da eine klare Beziehung zwischen der Suche nach Orten in der Nähe und der Notwendigkeit der Berechtigung zur Standortermittlung besteht. Da diese Beziehung offensichtlich ist, müssen in der App keine zusätzlichen Informationsbildschirme angezeigt werden.

Die App fordert eine Berechtigung an, wenn dies offensichtlich notwendig ist.
Abbildung 5: Frage im entsprechenden Kontext um Erlaubnis.

Im Kontext unterrichten

Abbildung 6 zeigt ein Beispiel für kontextbezogene Bildung. Die App benötigt keine Berechtigungen zum Starten des Timers, aber ein Inline-Hinweis für Hinweise darauf, dass ein Teil der Aktivität – die Standorterkennung – gesperrt ist. Wenn der Nutzer auf den Hinweis tippt, wird ein Bildschirm mit einer Berechtigungsanfrage angezeigt, über den der Nutzer die Standorterkennung entsperren kann.

Verwenden Sie die Methode shouldShowRequestPermissionRationale(), damit Ihre Anwendung besser entscheiden kann, ob weitere Informationen bereitgestellt werden sollen. Weitere Informationen finden Sie unter Anwendungsberechtigungen anfordern. Alternativ können Sie prüfen, wie die Lautsprecher-Beispielanwendung auf GitHub das Anzeigen von Informationen verarbeitet.

Wenn eine Berechtigung erforderlich ist, erläutert die App, warum sie erforderlich ist.
Abbildung 6: Im Kontext vermitteln

Umgang mit Ablehnung

Wenn der Nutzer eine angeforderte Berechtigung ablehnt, die für eine beabsichtigte Aktivität nicht entscheidend ist, sollten Sie ihn nicht daran hindern, die Aktivität fortzusetzen. Wenn bestimmte Teile der Aktivität durch die verweigerte Berechtigung deaktiviert wurden, geben Sie visuelles, umsetzbares Feedback.

Abbildung 7 zeigt die Verwendung eines Schloss-Symbols, das anzeigt, dass ein Feature gesperrt ist, da der Nutzer keine Berechtigung zu seiner Verwendung gewährt hat.

Wenn der Nutzer die Berechtigung ablehnt, wird neben der zugehörigen Funktion ein Schloss-Symbol angezeigt.
Abbildung 7: Schlosssymbol, das anzeigt, dass ein Element aufgrund einer abgelehnten Berechtigung gesperrt ist.

Wenn ein Dialogfeld ein zweites Mal angezeigt wird, das zuvor eine Berechtigung für Wearables verweigert wurde, enthält es die Option Ablehnen, nicht mehr anzeigen. Wenn der Nutzer diese Option auswählt, kann er diese Berechtigung künftig nur noch über die Einstellungen des Wearables erteilen.

Das System bietet an, keine Berechtigung anzufordern.
Abbildung 8. Der Nutzer kann auf eine Berechtigungsanfrage zugreifen, die zuvor zweimal über die Einstellungen abgelehnt wurde.

Weitere Informationen zum Umgang mit abgelehnten Berechtigungen

Berechtigungen für Dienste

Die Methode requestPermissions() kann nur von einer Aktivität aufgerufen werden. Wenn der Nutzer also über einen Dienst mit deiner App interagiert, z. B. über ein Zifferblatt, muss der Dienst eine Aktivität öffnen, bevor er die Berechtigung anfordert. Bieten Sie in dieser Aktivität zusätzliche Informationen darüber, warum die Berechtigung erforderlich ist.

Fordere im Allgemeinen keine Berechtigungen für ein Zifferblatt an. Implementieren Sie stattdessen eine Zusatzfunktion, damit der Nutzer auswählen kann, welche Daten über die Zusatzfunktion angezeigt werden sollen.

Einstellungen

Nutzer können die Berechtigungen einer Wear-App jederzeit in den Einstellungen ändern. Wenn der Nutzer versucht, eine Aktion auszuführen, für die eine Berechtigung erforderlich ist, rufen Sie zuerst die Methode checkSelfPermission() auf, um zu prüfen, ob die App die Berechtigung zum Ausführen des Vorgangs hat.

Führen Sie diese Prüfung auch dann aus, wenn der Nutzer die Berechtigung zuvor gewährt hat, da sie sie möglicherweise später widerrufen hat.

Der Nutzer kann die Berechtigungen in der App „Einstellungen“ ändern.
Abbildung 9. Der Nutzer kann die Berechtigungen in den Einstellungen ändern.