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.
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 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 prosi o wiele uprawnień jednocześnie
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.
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.
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.
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.
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ąć.