Wysyłanie prośby o uprawnienia w Wear OS

Wysyłanie próśb o uprawnienia na Wear OS przypomina wysyłanie próśb o uprawnienia w aplikacjach mobilnych, ale ma kilka dodatkowych przypadków użycia. W tym dokumencie zakładamy, że wiesz, jak działają uprawnienia Androida. Jeśli nie, sprawdź, jak działają uprawnienia na Androidzie.

Podobnie jak w przypadku aplikacji mobilnych, użytkownik musi przyznać jej uprawnienia, aby uzyskać dostęp do określonych funkcji. W aplikacjach na Wear zapewniaj przydatne funkcje bez próśb o przyznanie uprawnień.

Scenariusze uprawnień

Istnieje kilka scenariuszy, które mogą wystąpić podczas wysyłania prośby o niebezpieczne uprawnienia w Wear OS:

  • Aplikacja Wear prosi o przyznanie uprawnień aplikacji uruchomionej na urządzeniu do noszenia.

  • Aplikacja Wear prosi o przyznanie uprawnień aplikacji uruchomionej na telefonie.

  • Aplikacja Telefon prosi o uprawnienia 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, przejrzyj próbkę ExcersizeSampleCompose na GitHubie.

W poniższych sekcjach opisano każdy z tych scenariuszy. Szczegółowe informacje na temat wysyłania próśb o uprawnienia znajdziesz w sekcji Wzorce żądań uprawnień.

Aplikacja Wear prosi o uprawnienia do noszenia

Gdy aplikacja Wear prosi o przyznanie uprawnień aplikacji uruchomionej na urządzeniu do noszenia, system wyświetla okno z prośbą o przyznanie uprawnień. Prośby o przyznanie uprawnień w aplikacji należy prosić tylko wtedy, gdy dla użytkownika jasne jest, dlaczego dane te są potrzebne do wykonania danej operacji.

Zapoznaj się z zasadami dotyczącymi uprawnień, aby zadbać o jak najlepsze wrażenia użytkowników. Pamiętaj też, aby sprawdzić zasady shouldShowRequestPermissionRationale() i w razie potrzeby podać dodatkowe informacje.

Jeśli aplikacja lub tarcza zegarka wymaga więcej niż 1 uprawnienia jednocześnie, prośby o przyznanie uprawnień wyświetlają się po kolei.

Wiele ekranów uprawnień, jeden po drugim.
Rysunek 1. Ekrany uprawnień pojawiają się kolejno.

Aplikacja Wear prosi o pozwolenie na dostęp do telefonu

Gdy aplikacja Wear prosi o przyznanie uprawnień telefonu – na przykład aplikacja na urządzenia do noszenia prosi o dostęp do zdjęć lub innych danych wrażliwych w wersji mobilnej aplikacji – aplikacja Wear musi wysłać użytkownika na telefon, żeby zaakceptować to uprawnienie. Tam aplikacja Telefon może przekazać użytkownikowi dodatkowe informacje za pomocą aktywności. Umieść w niej 2 przyciski: jeden do przyznania uprawnień, a drugi do odmowy.

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

Aplikacja Telefon prosi o uprawnienia do noszenia

Jeśli użytkownik korzysta z aplikacji na telefonie, która wymaga uprawnień do noszenia – na przykład w celu wstępnego wczytania muzyki w przypadku rozłączenia telefonu – aplikacja telefonu wysyła użytkownika na urządzenie do noszenia, aby zaakceptować to uprawnienie. Do wywołania okna uprawnień systemowych jej wersja do noszenia korzysta z metody requestPermissions().

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

Aplikacja Telefon prosi o wiele uprawnień jednocześnie

Rysunek 4. Okno uprawnień, w którym używany jest profil urządzenia towarzyszącego do wysyłania próśb o wiele uprawnień w 1 prośbie.

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

Zgrupowane uprawnienia są przyznawane aplikacji towarzyszącej, gdy urządzenie się połączy, i są aktywne tylko wtedy, gdy urządzenie jest powiązane. Usunięcie aplikacji lub powiązania spowoduje utratę uprawnień. Więcej informacji: AssociationRequest.Builder.setDeviceProfile().

Wzorce próśb o uprawnienia

Prośby o przyznanie uprawnień od użytkowników różnią się w różny sposób. Są to według priorytetu:

  • Pytaj w kontekście, gdy uprawnienia są oczywiście niezbędne do działania określonej funkcji, ale nie są niezbędne do działania aplikacji jako całości.

  • Udzielaj informacji w kontekście, gdy powód prośby o uprawnienia nie jest oczywisty i nie jest ono konieczne do uruchomienia aplikacji jako całości.

Wzorce te zostały opisane w kolejnych sekcjach.

Zapytaj w kontekście

Prośby o uprawnienia należy wysyłać, gdy jest jasne dla użytkownika, dlaczego dane te są potrzebne do wykonania danej operacji. Użytkownicy chętniej udzielą uprawnień, gdy będą znać jego związek z funkcją, której chcą używać.

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 natychmiast poprosić o dostęp do lokalizacji, ponieważ istnieje wyraźny związek między wyszukiwaniem miejsc w pobliżu a potrzebą dostępu do lokalizacji. Ze względu na oczywistość tej relacji aplikacja nie musi wyświetlać dodatkowych ekranów edukacyjnych.

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

Edukuj w kontekście

Rysunek 6 przedstawia przykład edukacji kontekstowej. Aplikacja nie wymaga uprawnień do uruchamiania licznika czasu, ale wbudowana wskazówka edukacyjna pokazuje, że część aktywności, czyli wykrywanie lokalizacji, jest zablokowana. Gdy użytkownik kliknie sygnał, pojawi się ekran z prośbą o uprawnienia, na którym można odblokować wykrywanie lokalizacji.

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

Gdy zachodzi taka potrzeba, aplikacja wyjaśnia, dlaczego dane uprawnienia są potrzebne.
Rysunek 6. Edukuj w kontekście.

Postępowanie w przypadku odrzucenia

Jeśli użytkownik odmówi przyznania uprawnienia, które nie jest niezbędne dla zamierzonego działania, nie blokuj mu możliwości kontynuowania tego działania. Jeśli odmowa dostępu do niektórych części aktywności została wyłączona, prześlij wizualną, praktyczną opinię.

Rysunek 7 przedstawia użycie ikony blokady wskazującej, że funkcja jest zablokowana, ponieważ użytkownik nie udzielił zgody na jej używanie.

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

Jeśli poprzednio odrzucone okno uprawnień do noszenia wyświetla 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 zaprzestanie wysyłania próśb o przyznanie uprawnień.
Rysunek 8. Użytkownik może w Ustawieniach uzyskać dostęp do prośby o przyznanie uprawnień, która została wcześniej dwukrotnie odrzucona.

Dowiedz się więcej o obsługiwaniu odmowy przyznania uprawnień.

Uprawnienia usług

Tylko aktywność może wywoływać metodę requestPermissions(), więc jeśli użytkownik wchodzi w interakcję z aplikacją za pomocą usługi (np. za pomocą tarczy zegarka), usługa musi otworzyć działanie przed wysłaniem prośby o uprawnienia. W ramach tego ćwiczenia wyjaśnij, dlaczego potrzebujesz pozwolenia.

Ogólnie rzecz biorąc, nie należy prosić o uprawnienia do tarczy zegarka. Wdróż widżet i pozwól użytkownikowi wybrać dane do wyświetlenia.

Ustawienia

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

Sprawdź to nawet wtedy, gdy użytkownik wcześniej udzielił tych uprawnień, ponieważ mógł je później cofnąć.

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