Wysyłanie prośby o uprawnienia w Wear OS

Prośba o uprawnienia w Wear OS jest podobna do prośby o uprawnienia w aplikacjach mobilnych, z kilkoma dodatkowymi przypadkami użycia. Zakładamy w nim, że wiesz, jak działają uprawnienia na Androidzie. Jeśli go nie masz, dowiedz się, jak działają uprawnienia na Androidzie.

Podobnie jak w przypadku aplikacji mobilnej, aby korzystać z określonych funkcji, użytkownik musi przyznać aplikacji na Wear uprawnienia. W aplikacjach na Wear udostępniaj przydatne funkcje bez konieczności podawania żadnych uprawnień.

Scenariusze dotyczące uprawnień

Gdy prosisz o niebezpieczne uprawnienia na Wear OS, może wystąpić kilka sytuacji:

  • Aplikacja na Wear prosi o uprawnienia dla aplikacji uruchomionej na urządzeniu do noszenia.

  • Aplikacja na Wear prosi o uprawnienia aplikacji uruchomionej na telefonie.

  • Aplikacja Telefon prosi o uprawnienia dla aplikacji uruchomionej na urządzeniu do noszenia.

  • Aplikacja Telefon prosi o wiele uprawnień, których można używać tylko wtedy, gdy urządzenie do noszenia jest połączone.

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

W sekcjach poniżej opisujemy każdy z tych scenariuszy. Szczegółowe informacje o wysyłaniu próśb o przyznanie uprawnień znajdziesz w sekcji Wzorce próśb o uprawnienia.

Aplikacja na Wear prosi o uprawnienia do noszenia

Gdy aplikacja na Wear poprosi o przyznanie uprawnień aplikacji uruchomionej na urządzeniu do noszenia, system wyświetli okno z prośbą o przyznanie tych uprawnień. W aplikacji prosij o uprawnienia tylko wtedy, gdy jest jasne dla użytkownika, dlaczego te uprawnienia są potrzebne do wykonania określonej operacji.

Zapoznaj się z zasadami dotyczącymi uprawnień, aby zapewnić użytkownikom najlepsze wrażenia, i pamiętaj, by sprawdzić sekcję shouldShowRequestPermissionRationale() i w razie potrzeby podać dodatkowe informacje.

Jeśli aplikacja lub tarcza zegarka wymaga więcej niż 1 uprawnienia naraz, prośby o przyznanie uprawnień pojawiają się jeden po drugim.

Wiele ekranów uprawnień, jeden po drugim.
Rysunek 1. Ekrany uprawnień wyświetlane jeden po drugim.

Aplikacja na Wear prosi o przyznanie uprawnień do korzystania z telefonu

Gdy aplikacja na Wear prosi o przyznanie uprawnień do korzystania z telefonu – na przykład aplikacja na urządzenia do noszenia prosi o dostęp do zdjęć lub innych danych wrażliwych w jej mobilnej wersji – musi wysłać użytkownika do telefonu, aby zaakceptować uprawnienie. Aplikacja Telefon może przekazać użytkownikowi dodatkowe informacje za pomocą aktywności. Aktywność powinna zawierać 2 przyciski: jeden do przyznawania uprawnień i drugi do odmowy.

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

Aplikacja Telefon prosi o uprawnienia do noszenia

Jeśli użytkownik korzysta z aplikacji na telefon i wymaga ona uprawnień do noszenia, na przykład aby wstępnie wczytać muzykę w przypadku rozłączenia telefonu, aplikacja na telefon wysyła go do urządzenia do noszenia, aby zaakceptować uprawnienia. Wersja aplikacji do noszenia używa metody requestPermissions() do aktywowania okna uprawnień systemowych.

Aplikacja Telefon wysyła użytkownika do urządzenia do noszenia, aby przyznać uprawnienia.
Rysunek 3. Wyślij użytkownika do urządzenia do noszenia, aby przyznać uprawnienia.

Aplikacja Telefon prosi o kilka uprawnień jednocześnie

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

Aplikacje partnerów na Androidzie 12 (poziom interfejsu API 31) i nowszym mogą korzystać z profili urządzenia towarzyszącego podczas łączenia się z zegarkiem. Korzystanie z profilu upraszcza proces rejestracji, łącząc w jednym kroku przyznawanie zestawu uprawnień określonego typu urządzenia.

Uprawnienia zawarte w pakiecie są przyznawane aplikacji towarzyszącej po nawiązaniu połączenia z urządzeniem i tylko w czasie, gdy urządzenie jest powiązane. Usunięcie aplikacji lub powiązania spowoduje usunięcie uprawnień. Więcej informacji: AssociationRequest.Builder.setDeviceProfile().

Wzorce próśb o przyznanie uprawnień

Istnieją różne wzorce próśb o przyznanie od użytkowników uprawnień. Według priorytetu są to:

  • Pytaj w kontekście, gdy uprawnienie jest oczywiście niezbędne do działania danej funkcji, ale nie jest niezbędne do działania całej aplikacji.

  • Edukacja w kontekście, gdy powód prośby o uprawnienie nie jest oczywisty, a uprawnienie nie jest niezbędne do działania całej aplikacji.

Wzorce te objaśniamy w dalszej części tego artykułu.

Zapytaj w kontekście

Poproś o uprawnienia, gdy użytkownik będzie mieć jasne na to, dlaczego dane te są potrzebne do wykonania danej operacji. Użytkownicy z większym prawdopodobieństwem przyznają uprawnienie, jeśli będą rozumieć jego związek z funkcją, której chcą użyć.

Aplikacja może na przykład wymagać lokalizacji użytkownika do pokazywania interesujących miejsc w pobliżu. Gdy użytkownik kliknie, aby wyszukać miejsca w pobliżu, aplikacja może natychmiast poprosić o dostęp do lokalizacji, ponieważ istnieje wyraźna relacja między wyszukiwaniem miejsc w pobliżu a potrzebą dostępu do lokalizacji. Ta relacja jest niewiarygodna. Aplikacja nie musi już wyświetlać dodatkowych ekranów edukacyjnych.

Aplikacja prosi o uprawnienia, gdy jest to oczywiste.
Rysunek 5. Poproś o uprawnienia w kontekście.

Edukacja w kontekście

Rysunek 6 pokazuje przykład edukacji kontekstowej. Aplikacja nie wymaga uprawnień do uruchomienia minutnika, ale wbudowany wskaźnik edukacyjny informuje, że ta część aktywności – wykrywanie lokalizacji – jest zablokowana. Gdy użytkownik kliknie wzmiankę, pojawi się ekran z prośbą o zgodę, który umożliwia odblokowanie wykrywania lokalizacji.

Użyj metody shouldShowRequestPermissionRationale(), aby ułatwić aplikacji podjęcie decyzji, czy podać więcej informacji. Więcej informacji znajdziesz w artykule Wysyłanie prośby o uprawnienia aplikacji. Możesz też sprawdzić, jak przykładowa aplikacja z prelegentami na GitHubie obsługuje wyświetlanie informacji.

Gdy zachodzi potrzeba przyznania uprawnień, aplikacja wyjaśnia, dlaczego jest konieczne.
Rysunek 6. Edukacja w kontekście.

Obsługa odrzucenia

Jeśli użytkownik odmówi przyznania uprawnienia, które nie ma kluczowego znaczenia dla zamierzonego działania, nie blokuj mu możliwości kontynuowania aktywności. Jeśli niektóre części aktywności są wyłączone z powodu odmowy uprawnień, prześlij wizualną informację zwrotną.

Rysunek 7 przedstawia użycie ikony blokady do wskazywania, że funkcja jest zablokowana, ponieważ użytkownik nie udzielił zgody na jej użycie.

Jeśli użytkownik odmówi przyznania uprawnień, obok powiązanej funkcji wyświetli się ikona kłódki.
Rysunek 7. Ikona blokady wskazująca, że funkcja jest zablokowana z powodu odmowy uprawnień.

Gdy okno uprawnień do noszenia, które wcześniej zostało odrzucone, pojawia się po raz drugi, zawiera opcję Odmów, nie pokazuj ponownie. Jeśli użytkownik wybierze tę opcję, jedynym sposobem na przyznanie mu tego uprawnienia w przyszłości będzie otwarcie aplikacji Ustawienia na urządzeniu do noszenia.

System proponuje, że nie będzie już prosić o uprawnienia.
Rysunek 8. Użytkownik może uzyskać w Ustawieniach dostęp do prośby o uprawnienia, która wcześniej została odrzucona dwukrotnie.

Dowiedz się więcej o tym, jak radzić sobie z odmową uprawnień.

Uprawnienia dotyczące usług

Tylko działanie może wywoływać metodę requestPermissions(). Jeśli więc użytkownik wejdzie w interakcję z aplikacją za pomocą usługi – np. przez tarczę zegarka – musi ona otworzyć działanie, zanim poprosi o uprawnienie. W tym ćwiczeniu wyjaśnij, dlaczego potrzebne jest pozwolenie.

Ogólnie nie proś o uprawnienia do tarczy zegarka. Zamiast tego zaimplementuj widżet i pozwól użytkownikowi wybrać, które dane mają być w nim wyświetlane.

Ustawienia

Użytkownik może w każdej chwili zmienić uprawnienia aplikacji na Wear w Ustawieniach. Gdy użytkownik próbuje zrobić coś, co wymaga uprawnień, najpierw wywołaj metodę checkSelfPermission(), aby sprawdzić, czy aplikacja ma uprawnienia do wykonania tej operacji.

Wykonaj tę czynność nawet wtedy, gdy użytkownik już wcześniej przyznał Ci uprawnienia, ponieważ mógł je później anulować.

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