Uprawnienia w czasie działania w Androidzie 6 i nowszych wersjach umożliwiają użytkownikom kontrolowanie, kiedy zezwalają na nagrywanie dźwięku z mikrofonu urządzenia lub obrazu z kamery urządzenia. Zanim aplikacja będzie mogła nagrywać, użytkownik musi przyznać jej uprawnienia lub odmówić, korzystając z okna dialogowego wyświetlanego przez system.
Android 12 zapewnia użytkownikom przejrzystość dzięki wyświetlaniu wskaźników, gdy aplikacja używa prywatnego źródła danych za pomocą aparatu i mikrofonu w ramach uprawnień dostępu do aplikacji. Zdarzenie app-ops rejestruje dostęp do interfejsów API chronionych uprawnieniami w czasie wykonywania.
App-op śledzi stan aktywności i liczbę poszczególnych wywołań interfejsu API, a także współpracuje ze wskaźnikami mikrofonu i aparatu w Androidzie 12, aby informować użytkowników o tym, kiedy aplikacje uzyskują dostęp do danych audio i z aparatu na ich urządzeniach. Gdy użytkownicy klikają wskaźniki mikrofonu lub aparatu, widzą, które aplikacje uzyskały dostęp do ich danych. Ta funkcja jest obowiązkowa dla wszystkich producentów OEM.
Wymagania dotyczące widoczności wskaźnika
Oto wymagania dotyczące wskaźników mikrofonu i aparatu na urządzeniach z Androidem 12 lub nowszym:
- Wskaźniki muszą być widoczne na pasku stanu i mieć najwyższy priorytet wizualny (np. w prawym górnym rogu).
- Wskaźniki muszą znajdować się w tym samym miejscu i nie mogą być blokowane przez aplikację podczas uruchamiania.
- Oba wskaźniki muszą być zielone (lub w zmiennej tonacji zieleni).
- Kliknięcie jednego lub obu wskaźników musi wygenerować powiadomienie o afordancji atrybucji aplikacji:
- Wyświetla nazwę aplikacji, która używa mikrofonu i (lub) kamery.
- Wyświetla nazwę aplikacji, która w ciągu ostatnich 15 sekund używała mikrofonu lub aparatu.
- przekierowuje użytkowników do strony uprawnień aplikacji w sekcji Ustawienia;
Wykorzystanie i funkcje
W Androidzie 12 interfejs rozróżnia bieżące i niedawne użycia. Użycie jest uznawane za aktywne, jeśli zostało oznaczone przez system jako uruchomione lub ma mniej niż 5 sekund.
- Ikony na pasku stanu pojawiają się za każdym razem, gdy aplikacja ma dostęp do mikrofonu lub aparatu, który może wykorzystywać dane użytkownika.
- Użytkownicy mogą kliknąć te ikony, aby zobaczyć, które aplikacje mają dostęp do mikrofonu, kamery lub obu tych urządzeń.
Rysunek 1. Wskaźniki mikrofonu i aparatu wskazujące aktywny dostęp (prawy górny róg)
Dostęp jest aktywny tak długo, jak długo są widoczne wskaźniki. Najpierw pojawia się ikona, a potem kropka, która pozostaje widoczna do momentu odrzucenia lub zamknięcia aplikacji.
Gdy użytkownik kliknie wskaźniki, otworzy się okno informujące, że aplikacja używa aparatu, mikrofonu lub obu tych urządzeń.
Rysunek 2. Wskaźniki aktywnego i niedawnego dostępu
Obraz na Rys. 2 pokazuje aktywne wskaźniki dostępu, gdy uruchomiona aplikacja miała dostęp do danych w ciągu ostatnich 5 sekund.
Wskaźniki ostatniego dostępu wskazują, że aplikacja uzyskała dostęp do danych w ciągu ostatnich 15 sekund, ale nie jest aktywna. W oknie są widoczne wszystkie aktywne aplikacje, ale jako źródło ostatniego dostępu pojawia się tylko jedna z nich, nawet jeśli w ciągu ostatnich 15 sekund więcej niż 1 aplikacja uzyskiwała dostęp do danych. Widok dostępu pozostaje zablokowany, dopóki użytkownik nie zamknie okna powiadomienia.
Prześlij i włącz
Klasa PermissionManager
udostępnia metodę wypełniania okna, które znajduje się w interfejsie systemowym.
- Interfejs systemu reaguje na przełącznik konfiguracji urządzenia:
privacy/mic_camera_indicators_enabled
. - Przejście jest konieczne, ponieważ istnieją 2 osobne pojazdy dostawcze:
- Wyświetlanie
- Włącz.
- Interfejs użytkownika nie może się zawiesić, jeśli metoda w
PermissionManager
nie może dostarczyć potrzebnych danych.
Przebieg procesu
Funkcja wskaźnika uprawnień składa się z 3 głównych części:
- Aplikacje
- Wskaźniki (obsługiwane przez SystemUI)
- Sposób określenia, które aplikacje korzystają z tych danych
PermissionController
udostępnia mechanizm umożliwiający określenie, które aplikacje używają danych. SystemUI nasłuchuje aplikacji korzystających z prywatnych danych. Na górnym pasku nawigacyjnym widać ikonę SystemUI związaną z używanymi uprawnieniami.
PermissionController
zawiera dane o używaniu ikony przez użytkownika.
Rysunek 3. Proces przenoszenia elementów systemu i przejścia (UI)
Ponumerowane przejścia na Rys. 3 zostały opisane poniżej:
1. Aplikacja żąda od systemu prywatnych danych.
2 – system sprawdza uprawnienia. Jeśli uprawnienia są dozwolone, system wysyła powiadomienie do dostawcy danych i zaznacza użycie w aplikacji.
3. Dostawca danych przekazuje dane aplikacji.
4–5 Użytkownik klika ikony. Interfejs systemu żąda danych z PermissionManager
i wyświetla okno użytkownikowi.
Szczegóły procesu
- Aplikacje korzystają z mikrofonu i kamery oraz wywołują połączenia
AppOpsManager.startOp
,stopOp
lubnoteOp
. Spowoduje to utworzenie na serwerze systemowym rekordów operacji na aplikacji. - Interfejs systemu wysłuchuje nowe operacje aplikacji za pomocą listenerów
AppOpsManager.OnOpActiveChangedInternalListener
iOnOpNotedListener
. Gdy pojawi się nowe użycie (przez wywołaniestartOp
lubnoteOp
), interfejs użytkownika sprawdza, czy użycie pochodzi z aplikacji systemowej. - Jeśli interfejs System UI potwierdzi, że aplikacja systemowa korzysta z mikrofonu, sprawdzi, czy mikrofon jest wyciszony.
- Jeśli interfejs systemu potwierdzi użycie aplikacji niesystemowej (a w przypadku mikrofonu – że mikrofon jest włączony; a w przypadku aparatu – że aparat jest włączony), wyświetli ikonę odpowiadającą takiemu użyciu.
Jeśli interfejs systemu otrzyma zdarzenie noteOp
, które nie ma czasu trwania, wyświetla ikonę przez co najmniej 5 sekund. W przeciwnym razie ikona będzie się wyświetlać do momentu, gdy otrzymasz stopOp
lub przez 5 sekund, w zależności od tego, który okres jest dłuższy. Kliknięcie ikony przez użytkownika inicjuje intencję, która prowadzi do PermissionController
, aby rozpocząć okno dialogowe.
PermissionController
wczytuje wszystkie niedawne użycia mikrofonu i aparatu. Sprawdza, czy któreś z nich są uruchomione lub czy były uruchomione w przedziale czasu określonym w interfejsie systemu. Jeśli znajdzie dopasowanie, wyświetli nazwę aplikacji, która używała uprawnienia, oraz jakie uprawnienia zostały użyte.
Ze względu na tę zmianę w Androidzie 12 i nowszych niektóre aplikacje muszą zmienić swoje działanie lub wdrożyć specjalne zachowanie.
Telephony musi stosować uprawnienia (aby uwzględnić oddzielny moduł mikrofonu używany w przypadku połączeń telefonicznych) podczas współpracy z aplikacją wyszukiwania Google na Androida (AGSA) i usługami mobilnymi Google (GMS).