Wysyłanie prośby o uprawnienia w Wear OS

keywords: wear, permissions, collection_guideslandingwear image_path: images/training/wear/multiple_permissions.png

Żądanie uprawnień na Wear OS jest podobne do żądania uprawnień w aplikacjach mobilnych, ale z kilkoma dodatkowymi przypadkami użycia. Z dokumentu wynika, że rozumiesz, jak działają uprawnienia na Androidzie. Jeśli nie, sprawdź, jak działają uprawnienia na Androidzie.

Podobnie jak w przypadku aplikacji mobilnej, użytkownik musi przyznać aplikacji Wear uprawnienia dostępu do określonych funkcji. W aplikacjach na Wear zapewnij przydatną funkcjonalność bez konieczności uzyskiwania żadnych uprawnień.

Scenariusze dotyczące uprawnień

Gdy żądasz niebezpiecznych uprawnień na Wear OS, może wystąpić kilka scenariuszy:

  • Aplikacja Wear prosi o przyznanie uprawnień aplikacji działającej na urządzeniu przenośnym.

  • Aplikacja Wear prosi o przyznanie uprawnień aplikacji działającej na telefonie.

  • Aplikacja na telefonie prosi o przyznanie uprawnień aplikacji działającej na urządzeniu do noszenia.

  • Aplikacja telefonu prosi o różne uprawnienia, których można używać tylko wtedy, gdy urządzenie typu wearable jest połączone.

Aby zobaczyć wszystkie te scenariusze w działającej aplikacji, zapoznaj się z przykładem ExerciseSampleCompose na GitHubie.

W poniższych sekcjach znajdziesz opisy poszczególnych scenariuszy. Więcej informacji o prośbach o uprawnienia znajdziesz w sekcji Wzory próśb o uprawnienia.

Aplikacja na Wear prosi o uprawnienia dotyczące urządzenia do noszenia

Gdy aplikacja Wear prosi o uprawnienia dla aplikacji działającej na urządzeniu do noszenia, system wyświetla okno z prośbą o te uprawnienia. W aplikacji proś o uprawnienia tylko wtedy, gdy użytkownik będzie wiedział, dlaczego są one potrzebne do wykonania danej operacji.

Zapoznaj się z zasadami dotyczącymi uprawnień, aby zapewnić użytkownikom jak najlepszą obsługę. Pamiętaj, aby w razie potrzeby shouldShowRequestPermissionRationale()dodać dodatkowe informacje.

Jeśli aplikacja lub tarcza zegarka wymaga więcej niż 1 uprawnienia, prośby o nie będą się pojawiać po kolei.

Wiele ekranów z prośbami o uprawnienia, jeden po drugim.
Rysunek 1. Ekrany z uprawnieniami pojawiają się jeden po drugim.

Aplikacja na Wear prosi o dostęp do telefonu

Gdy aplikacja na Wear prosi o uprawnienia na telefonie (np. aplikacja na urządzenie noszące chce uzyskać dostęp do zdjęć lub innych danych wrażliwych w wersji mobilnej), musi przekierować użytkownika na telefon, aby ten zaakceptował uprawnienia. W takim przypadku aplikacja na telefon może przekazać użytkownikowi dodatkowe informacje za pomocą aktywności. W ramach aktywności dodaj 2 przyciski: jeden do przyznawania uprawnień i jeden do ich odmowy.

Aplikacja Wear wysyła użytkownika do telefonu, aby przyznał uprawnienia.
Rysunek 2. Przekieruj użytkownika na telefon, aby przyznać uprawnienia.

Aplikacja Telefon prosi o dostęp do urządzenia do noszenia

Jeśli użytkownik korzysta z aplikacji na telefonie, która wymaga uprawnień do urządzenia do noszenia (np. do wstępnego wczytania muzyki na wypadek utraty połączenia z telefonem), aplikacja przekierowuje użytkownika do urządzenia do noszenia, aby ten zaakceptował uprawnienia. Wersja aplikacji na urządzenia noszące korzysta z metody requestPermissions() do wywołania okna uprawnień systemowych.

Aplikacja na telefonie wysyła użytkownika do urządzenia do noszenia, aby ten przyznał uprawnienia.
Rysunek 3. Przekieruj użytkownika do urządzenia do noszenia, aby przyznać uprawnienia.

Aplikacja Telefon prosi o kilka uprawnień jednocześnie

Rysunek 4. Okno z uprawnieniami, które korzysta z profilu urządzenia towarzyszącego, aby poprosić o kilka uprawnień w jednym żądaniu.

Aplikacje partnerskie na Androidzie 12 (poziom interfejsu API 31) lub nowszym mogą korzystać z profili urządzeń towarzyszących podczas łączenia się z zegarkiem. Korzystanie z profilu upraszcza proces rejestracji, ponieważ pozwala połączyć udzielenie zestawu uprawnień do konkretnego typu urządzenia w jednym kroku.

Połączone uprawnienia są przyznawane aplikacji towarzyszącej po połączeniu urządzenia i trwają tylko przez czas jego powiązania. Usunięcie aplikacji lub usunięcie powiązania powoduje usunięcie uprawnień. Więcej informacji znajdziesz w sekcji AssociationRequest.Builder.setDeviceProfile().

.

Wzorce dotyczące prośby o uprawnienia

Istnieją różne wzorce prośby o uprawnienia od użytkowników. W kolejności od największej do najmniejszej:

  • Zapytaj w kontekście, gdy uprawnienie jest wyraźnie wymagane do określonej funkcji, ale nie jest niezbędne do działania aplikacji jako całości.

  • Przekaż użytkownikowi informacje w kontekście, gdy powód żądania uprawnienia nie jest oczywisty i uprawnienie nie jest konieczne do działania aplikacji jako całości.

Te wzorce omawiamy w następnych sekcjach.

Zapytaj w kontekście

Wyświetlaj prośby o uprawnienia, gdy użytkownikowi jest jasne, dlaczego są one potrzebne do wykonania danej operacji. Użytkownicy chętniej udzielają uprawnień, gdy rozumieją związek z funkcją, z której chcą skorzystać.

Aplikacja może na przykład wymagać lokalizacji użytkownika, aby wyświetlać interesujące miejsca w pobliżu. Gdy użytkownik kliknie, aby wyszukać miejsca w pobliżu, aplikacja może od razu poprosić o dostęp do lokalizacji, ponieważ istnieje wyraźny związek między wyszukiwaniem miejsc w pobliżu a potrzebą uzyskania dostępu do lokalizacji. Ze względu na oczywistość tego związku aplikacja nie musi wyświetlać dodatkowych ekranów z informacjami.

Aplikacja prosi o uprawnienia, gdy jest to wyraźnie konieczne.
Rysunek 5. Zapytaj o uprawnienia w kontekście.

Edukacja w kontekście

Rysunek 6 przedstawia przykład edukacji w kontekście. Aplikacja nie wymaga uprawnień do uruchomienia minutnika, ale zawiera informację edukacyjną, że ta część aktywności (wykrywanie lokalizacji) jest zablokowana. Gdy użytkownik kliknie podpowiedź, pojawi się ekran z prośbą o przyznanie uprawnień, który umożliwi mu odblokowanie wykrywania lokalizacji.

Użyj metody shouldShowRequestPermissionRationale(), aby pomóc aplikacji w podejmowaniu decyzji, czy udostępnić więcej informacji. Więcej informacji znajdziesz w artykule Poproś o przyznanie uprawnień aplikacji. Możesz też sprawdzić, jak przykładowa aplikacja głośnikowa na GitHubie wyświetla informacje.

Gdy pojawi się potrzeba przyznania uprawnień, aplikacja wyjaśni, dlaczego są one konieczne.
Rysunek 6. Edukacja w kontekście.

Odpowiedź na odrzucenie

Jeśli użytkownik odmówi udzielenia uprawnień, które nie są niezbędne do wykonania danej czynności, nie blokuj mu dalszego działania. Jeśli ze względu na odrzucone uprawnienia niektóre części aktywności są wyłączone, prześlij wizualne informacje zwrotne, które pozwolą na wprowadzenie zmian.

Rysunek 7 przedstawia ikonę kłódki, która wskazuje, że funkcja jest zablokowana, ponieważ użytkownik nie zezwolił na jej używanie.

Gdy użytkownik odmówi udzielenia uprawnień, obok powiązanej funkcji pojawi się ikona kłódki.
Rysunek 7. Ikona blokady wskazująca, że funkcja jest zablokowana z powodu braku uprawnień

Gdy po raz drugi pojawi się okno z uprawnieniami urządzenia, które zostały wcześniej odrzucone, będzie zawierać opcję Odrzuć, nie pokazuj ponownie. Jeśli użytkownik wybierze tę opcję, jedynym sposobem na przyznanie tego uprawnienia w przyszłości będzie otwarcie aplikacji Ustawienia na urządzeniu.

System proponuje zaprzestanie wysyłania prośby o uprawnienia.
Rysunek 8. Użytkownik może uzyskać dostęp do prośby o przyznanie uprawnień, która została odrzucona dwukrotnie w Ustawieniach.

Dowiedz się więcej o tym, jak rozwiązywać problemy z odmową udzielenia uprawnień.

Uprawnienia dotyczące usług

Metodę requestPermissions() może wywołać tylko aktywność, więc jeśli użytkownik wchodzi w interakcję z aplikacją za pomocą usługi (np. za pomocą tarczy zegarka), usługa musi otworzyć aktywność, zanim poprosi o uprawnienie. W ramach tej aktywności przeprowadź dodatkowe szkolenie na temat tego, dlaczego te uprawnienia są potrzebne.

Ogólnie nie żądaj uprawnień do tarczy zegarka. Zamiast tego zastosuj komplikację i pozwól użytkownikowi wybrać, które dane mają być wyświetlane.

Ustawienia

Użytkownik może w każdej chwili zmienić uprawnienia aplikacji na Wear w Ustawieniach. Gdy użytkownik spróbuje wykonać działanie wymagające uprawnienia, najpierw wywołaj metodę checkSelfPermission(), aby sprawdzić, czy aplikacja ma uprawnienia do wykonania tej operacji.

Wykonaj tę weryfikację, nawet jeśli użytkownik wcześniej przyznał uprawnienia, ponieważ może je później cofnąć.

Użytkownik może zmienić uprawnienia w aplikacji Ustawienia.
Rysunek 9. Użytkownik może zmienić uprawnienia w aplikacji Ustawienia.