Poproś o dostęp w tle do danych z czujników na ciele

Android 13 i Wear OS 4 umożliwiają aplikacjom dostęp w tle do czujników na ciele, np. tętna. Ten nowy model dostępu jest podobny do tego, który wprowadził dostęp do lokalizacji w tle w Androidzie 10 (poziom interfejsu API 29).

Jeśli aplikacja musi mieć dostęp w tle do informacji z czujników na ciele, np. podczas monitorowania w tle danych usług medycznych, musisz poprosić o uprawnienie BODY_SENSORS_BACKGROUND.

Zgodnie z opisem na stronie Sprawdzone metody ochrony prywatności aplikacje powinny prosić o uprawnienie BODY_SENSORS_BACKGROUND tylko wtedy, gdy jest to niezbędne dla działania funkcji dla użytkowników. Aplikacje powinny odpowiednio informować o tym użytkowników.

Proces przyznawania tych uprawnień zależy od docelowej wersji pakietu SDK aplikacji.

Aplikacja jest kierowana na Androida 13 lub nowszego

Oprócz dotychczasowych uprawnień BODY_SENSORS zadeklaruj uprawnienie BODY_SENSORS_BACKGROUND w pliku manifestu:

<uses-permission android:name="android.permission.BODY_SENSORS">
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND">

Następnie aplikacja musi poprosić o uprawnienia w ramach osobnych operacji:

  1. Sprawdź, czy przyznano uprawnienie BODY_SENSORS. Jeśli nie, poproś o nie.
  2. Sprawdź, czy przyznano uprawnienie BODY_SENSORS_BACKGROUND. Jeśli nie, poproś o dane.
Opcja cały czas to pierwszy element listy na ekranie ustawień
Rysunek 1. Ustawienie Czujniki zawiera opcję Cały czas, która przyznaje dostęp do danych z czujników w tle.

Uwaga: jeśli aplikacja prosi o obie uprawnienia do czujników na ciele jednocześnie, system zignoruje żądanie i nie przyzna jej ani uprawnień.

W Androidzie 13 (poziom interfejsu API 33) i nowszych w oknie uprawnień w czasie działania aplikacji nie ma opcji „Zawsze zezwalaj”. Zamiast tego użytkownicy muszą włączyć stały dostęp do czujnika w tle z poziomu ustawień systemu, jak pokazano na ilustracji 1. Jeśli po przyznaniu uprawnienia BODY_SENSORS poprosisz o uprawnienie BODY_SENSORS_BACKGROUND, możesz pomóc użytkownikom w przejściu na tę stronę ustawień. Jeśli użytkownicy odmówią stałego dostępu, powinni móc dalej korzystać z aplikacji.

Aplikacja jest kierowana na wcześniejszą wersję

Tekst linku to „Otwórz ustawienia”.
Rysunek 2. Okno uprawnień zawiera link do przechodzenia użytkowników do uprawnień aplikacji dotyczących czujników w ustawieniach systemowych.

Jeśli Twoja aplikacja jest kierowana na Androida w wersji starszej niż 13, dostęp w tle nie jest przyznawany automatycznie, gdy poprosisz o uprawnienie BODY_SENSORS. Zamiast tego użytkownicy widzą okno systemowe z zaproszeniem do przejścia do ustawień uprawnień aplikacji dotyczących czujników, jak widać na ilustracji 2. Następnie użytkownicy muszą włączyć czujniki w tle na tej stronie ustawień.

Użytkownicy mogą odmówić dostępu w tle. Ma to taki sam efekt jak anulowanie uprawnienia BODY_SENSORS, gdy aplikacja działa w tle. Gdy aplikacja korzysta z funkcji PassiveMonitoringClient bez uprawnień dostępu w tle i przechodzi w tle, utraci uprawnienie BODY_SENSORS i wywoła wywołanie zwrotne onPermissionLost(). Z tego względu szczególnie ważne jest stosowanie sprawdzonych metod wysyłania próśb o uprawnienia w czasie działania.