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, z kilkoma dodatkowymi przypadkami użycia. W tym dokumencie zakładamy, że wiesz, jak działają uprawnienia na Androidzie. Jeśli nie, dowiedz się, jak działają uprawnienia na Androidzie.

Podobnie jak w przypadku aplikacji mobilnej użytkownik musi przyznać aplikacji na Wear uprawnienia dostępu do niektórych funkcji. W aplikacjach na Wear zapewniaj przydatne funkcje bez proszenia o żadne uprawnienia.

Scenariusze uprawnień

Podczas wysyłania prośby o niebezpieczne uprawnienia na urządzeniu z Wear OS możesz napotkać kilka scenariuszy:

  • Aplikacja Wear prosi o uprawnienia do aplikacji działającej na urządzeniu do noszenia.

  • Aplikacja Wear prosi o uprawnienia do aplikacji działającej na telefonie.

  • Aplikacja na telefon prosi o uprawnienia dla aplikacji działającej na urządzeniu do noszenia.

  • Aplikacja na telefon prosi o wiele uprawnień, które mogą być używane tylko wtedy, gdy urządzenie do noszenia jest połączone.

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

W sekcjach poniżej znajdziesz opis każdego z tych scenariuszy. Więcej informacji o prośbach o uprawnienia znajdziesz w sekcji Wzorce próśb o uprawnienia.

Aplikacja na zegarek prosi o uprawnienia na urządzeniu do noszenia

Gdy aplikacja na Wear prosi o uprawnienia dla aplikacji działającej na urządzeniu do noszenia, system wyświetla okno z prośbą o przyznanie tych uprawnień. W aplikacji proś o uprawnienia tylko wtedy, gdy użytkownik rozumie, dlaczego są one potrzebne do wykonania danego działania.

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

Jeśli aplikacja lub tarcza zegarka wymaga więcej niż jednego uprawnienia naraz, prośby o uprawnienia pojawiają się jedna po drugiej.

Wiele ekranów z prośbą o uprawnienia, jeden po drugim.
Rysunek 1. Ekrany z prośbą o uprawnienia wyświetlające się kolejno.

Aplikacja na zegarek prosi o uprawnienia do telefonu

Gdy aplikacja na zegarek poprosi o uprawnienia na telefonie – na przykład aplikacja na zegarek chce uzyskać dostęp do zdjęć lub innych danych wrażliwych w wersji mobilnej aplikacji – musi przekierować użytkownika na telefon, aby zaakceptował uprawnienia. Aplikacja na telefon może tam przekazywać użytkownikowi dodatkowe informacje za pomocą aktywności. W aktywności umieść 2 przyciski: jeden do przyznawania uprawnień, a drugi do ich odrzucania.

Aplikacja Wear przekierowuje użytkownika na telefon, aby przyznać uprawnienia.
Rysunek 2. Poproś użytkownika o przyznanie uprawnień na telefonie.

Aplikacja Telefon prosi o uprawnienia do urządzenia do noszenia

Jeśli użytkownik korzysta z aplikacji na telefonie, która wymaga uprawnień na urządzeniu do noszenia – np. do wstępnego wczytywania muzyki na wypadek odłączenia telefonu – aplikacja na telefonie przekieruje użytkownika na urządzenie do noszenia, aby zaakceptował uprawnienia. Wersja aplikacji na urządzenie do noszenia używa metody requestPermissions() do wywoływania okna uprawnień systemowych.

Aplikacja na telefonie przekierowuje użytkownika na urządzenie do noszenia, aby przyznać uprawnienia.
Rysunek 3. Przekieruj użytkownika na urządzenie do noszenia, aby przyznać uprawnienia.

Aplikacja Telefon prosi o wiele uprawnień jednocześnie

Rysunek 4. okno dialogowe uprawnień, które używa profilu urządzenia towarzyszącego do wysyłania prośby o wiele uprawnień w ramach jednego żądania;

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

Uprawnienia pakietowe są przyznawane aplikacji towarzyszącej po połączeniu urządzenia i obowiązują tylko wtedy, gdy urządzenie jest powiązane. Usunięcie aplikacji lub usunięcie powiązania spowoduje usunięcie uprawnień. Więcej informacji znajdziesz w sekcji AssociationRequest.Builder.setDeviceProfile().

Wzorce próśb o uprawnienia

Istnieją różne wzorce proszenia użytkowników o uprawnienia. W kolejności priorytetów są to:

  • Proś o uprawnienia w kontekście, gdy są one wyraźnie niezbędne do działania konkretnej funkcji, ale nie są konieczne do uruchomienia całej aplikacji.

  • Wyjaśniaj w kontekście, gdy powód żądania uprawnień nie jest oczywisty, a uprawnienia nie są niezbędne do działania aplikacji jako całości.

Te wzorce są opisane w kolejnych sekcjach.

Zadawanie pytań w kontekście

Wyświetlaj prośby o uprawnienia, gdy użytkownik rozumie, dlaczego są one potrzebne do wykonania danej operacji. Użytkownicy chętniej przyznają uprawnienia, gdy rozumieją ich związek z funkcją, której chcą używać.

Na przykład aplikacja może wymagać lokalizacji użytkownika, aby wyświetlać pobliskie miejsca zainteresowania. Gdy użytkownik kliknie, aby wyszukać miejsca w pobliżu, aplikacja może od razu poprosić o zezwolenie na dostęp do lokalizacji, ponieważ istnieje wyraźny związek między wyszukiwaniem miejsc w pobliżu a koniecznością uzyskania tego zezwolenia. Oczywistość tej relacji sprawia, że aplikacja nie musi wyświetlać dodatkowych ekranów edukacyjnych.

Aplikacja prosi o uprawnienia tylko wtedy, gdy jest to niezbędne.
Rysunek 5. Poproś o uprawnienia w kontekście.

Edukacja w kontekście

Ilustracja 6 przedstawia przykład edukacji w kontekście. Aplikacja nie wymaga uprawnień do uruchomienia timera, ale w treści pojawia się informacja, że 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 zdecydować, czy ma podać więcej informacji. Więcej informacji znajdziesz w artykule Prośba o uprawnienia aplikacji. Możesz też sprawdzić, jak przykładowa aplikacja głośnikowa w GitHubie wyświetla informacje.

Gdy aplikacja będzie potrzebować uprawnień, wyjaśni, dlaczego są one konieczne.
Rysunek 6. Przekazuj informacje w kontekście.

Radzenie sobie z odrzuceniem

Jeśli użytkownik odmówi przyznania uprawnień, które nie są kluczowe dla zamierzonego działania, nie blokuj mu możliwości kontynuowania tego działania. Jeśli niektóre części działania są wyłączone z powodu odmowy uprawnień, podaj wizualne, przydatne informacje zwrotne.

Ilustracja 7 pokazuje ikonę blokady, która wskazuje, że funkcja jest zablokowana, ponieważ użytkownik nie przyznał uprawnień do jej używania.

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

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

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

Dowiedz się więcej o tym, jak postępować w przypadku odmowy przyznania uprawnień.

Uprawnienia dotyczące usług

Tylko działanie może wywołać metodę requestPermissions(). Jeśli użytkownik wchodzi w interakcję z aplikacją za pomocą usługi, np. tarczy zegarka, usługa musi otworzyć działanie, zanim poprosi o uprawnienie. W ramach tej aktywności wyjaśnij, dlaczego to uprawnienie jest potrzebne.

Zasadniczo nie proś o uprawnienia do tarczy zegarka. Zamiast tego zaimplementuj 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 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 przyznał uprawnienia, 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.