Wysyłanie prośby o uprawnienia w Wear OS

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

Prośba o uprawnienia w Wear OS jest podobna do prośby o uprawnienia w aplikacjach mobilnych, ale obejmuje kilka dodatkowych przypadków użycia. Zakładamy, że wiesz, jak działają uprawnienia w Androidzie. Jeśli nie, przeczytaj, jak działają uprawnienia w Androidzie.

Podobnie jak w aplikacji mobilnej, użytkownik musi przyznać aplikacji na Wear uprawnienia dostępu do określonych funkcji. W aplikacjach na Wear udostępniaj przydatne funkcje bez proszenia o uprawnienia.

Scenariusze uprawnień

Podczas proszenia o niebezpieczne uprawnienia w Wear OS możesz napotkać kilka scenariuszy:

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

  • Aplikacja na Wear prosi o uprawnienia dla 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 kilka 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 ExerciseSampleCompose na GitHubie.

W kolejnych sekcjach opisujemy każdy z tych scenariuszy. Więcej szczegółowych informacji o proszeniu o uprawnienia znajdziesz w sekcji Wzorce próśb o uprawnienia.

Aplikacja na Wear prosi o uprawnienia do urządzenia 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 wie, dlaczego są one potrzebne do wykonania danej operacji.

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

Jeśli aplikacja lub tarcza zegarka wymaga więcej niż 1 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 uprawnień pojawiające się kolejno.

Aplikacja na Wear prosi o uprawnienia do telefonu

Gdy aplikacja na Wear prosi o uprawnienia do telefonu – np. aplikacja na urządzenia do noszenia chce mieć dostęp do zdjęć lub innych danych wrażliwych w wersji mobilnej aplikacji – aplikacja na Wear musi przekierować użytkownika na telefon, aby zaakceptował uprawnienia. Tam aplikacja na telefon może wyświetlić użytkownikowi dodatkowe informacje za pomocą aktywności. W aktywności umieść 2 przyciski: jeden do przyznawania uprawnień, a drugi do ich odrzucania.

Aplikacja na Wear przekierowuje użytkownika na telefon, aby przyznać uprawnienia.
Rysunek 2. Przekieruj użytkownika na telefon, aby przyznał uprawnienia.

Aplikacja na telefon prosi o uprawnienia do urządzenia do noszenia

Jeśli użytkownik korzysta z aplikacji na telefon i aplikacja wymaga uprawnień do urządzenia do noszenia – np. do wstępnego wczytania muzyki na wypadek odłączenia telefonu – aplikacja na telefon przekierowuje użytkownika na urządzenie do noszenia, aby zaakceptował uprawnienia. Wersja aplikacji na urządzenie do noszenia używa requestPermissions() metody, aby wywołać okno 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 na telefon prosi o kilka uprawnień naraz

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

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

Gdy urządzenie się połączy, aplikacja towarzysząca otrzyma pakiet uprawnień, które będą obowiązywać 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 opisie metody AssociationRequest.Builder.setDeviceProfile().

Wzorce próśb o uprawnienia

Istnieją różne wzorce proszenia użytkowników o uprawnienia. Według priorytetu są to:

  • Prośba w kontekście, gdy uprawnienia są wyraźnie niezbędne do obsługi określonej funkcji, ale nie są potrzebne do działania całej aplikacji.

  • Wyjaśnienie w kontekście, gdy powód prośby o uprawnienia nie jest oczywisty, a uprawnienia nie są potrzebne do działania całej aplikacji.

Te wzorce są opisane w kolejnych sekcjach.

Prośba w kontekście

Proś o uprawnienia, gdy użytkownik wie, 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 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ść tego związku aplikacja nie musi wyświetlać dodatkowych ekranów z informacjami.

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

Wyjaśnienie w kontekście

Rysunek 6 przedstawia przykład wyjaśnienia w kontekście. Aplikacja nie wymaga uprawnień do uruchomienia timera, ale wbudowany komunikat informacyjny pokazuje, że część aktywności – wykrywanie lokalizacji – jest zablokowana. Gdy użytkownik kliknie komunikat, pojawi się ekran z prośbą o uprawnienia, który umożliwi użytkownikowi odblokowanie wykrywania lokalizacji.

Użyj metody shouldShowRequestPermissionRationale() , aby pomóc aplikacji zdecydować, czy należy podać więcej informacji. Więcej informacji znajdziesz w artykule Prośba o uprawnienia aplikacji. Możesz też sprawdzić, jak aplikacja demonstracyjna głośnika na GitHubie wyświetla informacje.

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

Obsługa odrzucenia

Jeśli użytkownik odrzuci żądane uprawnienia, które nie są krytyczne dla zamierzonej aktywności, nie blokuj mu możliwości kontynuowania tej aktywności. Jeśli niektóre części aktywności są wyłączone z powodu odrzucenia uprawnień, wyświetlaj wizualne informacje zwrotne, które umożliwiają podjęcie działania.

Rysunek 7 przedstawia użycie ikony kłódki, 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 kłódki informująca, że funkcja jest zablokowana z powodu odrzucenia uprawnień.

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

System zaproponuje 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 2 razy odrzucona, w Ustawieniach.

Dowiedz się więcej o tym, jak obsługiwać odrzucenie uprawnień.

Uprawnienia dla usługi

Tylko aktywność może wywołać metodę requestPermissions(), więc jeśli użytkownik wchodzi w interakcję z Twoją aplikacją za pomocą usługi – np. za pomocą tarczy zegarka – usługa musi otworzyć aktywność, zanim poprosi o uprawnienia. W tej aktywności podaj dodatkowe informacje o tym, dlaczego uprawnienia są potrzebne.

Zasadniczo nie proś o uprawnienia do tarczy zegarka. Zamiast tego zaimplementuj a komplikację i pozwól użytkownikowi wybrać, które dane mają być wyświetlane w komplikacji.

Ustawienia

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

Wykonaj to sprawdzenie 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 za pomocą aplikacji Ustawienia.