Role w Androidzie

Rola to unikalna nazwa w systemie powiązana z określonymi uprawnieniami. Aplikacje mogą prosić o przyznanie określonych ról za pomocą interfejsu Android API, a dokładnie przez wywoływanie metod w klasie RoleManager.

Poniżej znajdziesz listę dostępnych ról i odpowiadających im wymagań:

Rola Wymagania
ASSISTANT Co najmniej 1 z tych elementów:
  • Aplikacja ma aktywność, która wykonuje działania wspomagające, biorąc pod uwagę informacje o kontekście użytkownika, gdy poprosił on o pomoc (np. nazwę pakietu bieżącej aplikacji na pierwszym planie i jej informacje kontekstowe).
  • Aplikacja ma zawsze włączoną usługę interakcji głosowej, która jest chroniona uprawnieniem android.permission.BIND_VOICE_INTERACTION i może rozpoznawać głos oraz hostować aktywne sesje interaktywne. Dodatkowo aplikacja ma jawną flagę wskazującą, że usługa może obsługiwać działanie asystenta.
BROWSER Wszystkie:
  • Aplikacja zawiera aktywność, którą inne aplikacje mogą wywoływać za pomocą żądań niejawnych intencji, która wyświetla stronę internetową odpowiadającą adresowi http://.
  • Aplikacja musi obsługiwać nawigację między linkami. Oznacza to, że jeśli użytkownik przegląda stronę internetową i kliknie adres http:// w tekście, aplikacja musi być w stanie wyświetlić treść odpowiadającą wybranemu linkowi bez dodatkowej interwencji użytkownika.
  • Aplikacja musi mieć możliwość podawania stronom internetowym bieżących informacji o geolokalizacji urządzenia, gdy zostanie o to poproszona, a użytkownik zatwierdzi prośbę.
DIALER Wszystkie:
  • Aplikacja ma aktywność, którą inne aplikacje mogą wywoływać za pomocą żądań intencji niejawnych, co zapewnia interfejs połączenia, gdy urządzenie jest w trakcie połączenia.
  • Aplikacja może obsługiwać intencje połączeń przychodzących, wyświetlać użytkownikowi informacje związane z połączeniem (np. numer telefonu dzwoniącego) i umożliwiać mu odebranie lub odrzucenie połączenia.
  • Aplikacja umożliwia użytkownikowi inicjowanie połączeń i wyświetlanie historii połączeń na urządzeniu.
SMS Wszystkie:
  • Aplikacja spełnia wszystkie wymagania dotyczące aplikacji do SMS-ów.
  • Aplikacja zawiera aktywność, którą inne aplikacje mogą wywoływać za pomocą żądań intencji niejawnych, które mogą wysyłać wiadomości na numer telefonu.
  • Aplikacja ma usługę, która wymaga uprawnienia android.permission.SEND_RESPOND_VIA_MESSAGE i może być wywoływana przez intencje niejawne. Może ona dostarczać wiadomości otrzymane z aplikacji Telefon, gdy użytkownik zdecyduje się odpowiedzieć wiadomością podczas połączenia przychodzącego. Aplikacja może dostarczać wiadomości za pomocą własnego systemu do obsługi wiadomości.
  • Aplikacja ma 2 odbiorniki komunikatów: jeden chroniony uprawnieniem android.permission.BROADCAST_SMS i drugi chroniony uprawnieniem android.permission.BROADCAST_WAP_PUSH. Mogą one nasłuchiwać odpowiednio SMS-ów i MMS-ów wysyłanych na urządzenie. Aplikacja jest wtedy odpowiedzialna za zapisywanie wiadomości u dostawcy SMS-ów i powiadamianie użytkowników.
EMERGENCY Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Aplikacja zawiera aktywność, która wyświetla informacje alarmowe użytkownika. Każdy może przejść do tego ekranu, klikając przycisk Alarmowe w aktywności Połączenia alarmowe.
HOME Aplikacja ma aktywność, która może uruchomić ekran główny, gdy użytkownik naciśnie przycisk ekranu głównego. Na ekranie głównym powinny być widoczne ikony aplikacji i widżety. Powinien on też obsługiwać nawigację za pomocą przycisków lub gestów (np. przesunięcie palcem w górę, aby zobaczyć wszystkie aplikacje).
CALL_REDIRECTION Aplikacja ma usługę chronioną uprawnieniem android.permission.BIND_CALL_REDIRECTION_SERVICE, z którą może się powiązać platforma telekomunikacyjna. Usługa otrzymuje wychodzący numer telefonu z platformy telekomunikacyjnej i wykonuje jedną z tych czynności:
  • Zezwól na nawiązanie połączenia w obecnej formie.
  • Zmień numer wychodzący, aby przekierowywać połączenia przez numer proxy.
  • Anuluj połączenie.
CALL_SCREENING Aplikacja ma usługę, która wymaga uprawnienia android.permission.BIND_SCREENING_SERVICE i wykonuje 2 funkcje:
  • Blokowanie i filtrowanie połączeń: usługa może wybrać, które połączenia mają być wysyłane do aplikacji telefonu (i potencjalnie dzwonić, w zależności od ustawień trybu Nie przeszkadzać lub głośności), a które mają być wysyłane do poczty głosowej bez powiadomienia.
  • Identyfikacja połączeń: usługa może identyfikować i wyświetlać informacje o połączeniu w interfejsie użytkownika.
SUPERVISION Wszystkie:
  • Aplikacja jest aplikacją systemową lub wstępnie zainstalowaną usługą.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Jedynym celem aplikacji jest umożliwienie rodzicowi lub opiekunowi prawnemu użytkownika zarządzania urządzeniem.
  • Aplikacja musi udostępniać na urządzeniu komponent interfejsu, którego upoważniony użytkownik może użyć do wyłączenia roli nadzoru.
SYSTEM_AUTOMOTIVE_CLUSTER Wszystkie:
  • Aplikacja jest aplikacją systemową w systemie Automotive.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja umożliwia wyświetlanie na wyświetlaczu samochodowym (zwykle obok kierownicy) informacji, które pozwalają użytkownikom odbierać połączenia telefoniczne oraz uzyskiwać dostęp do list kontaktów i rejestrów połączeń.
COMPANION_DEVICE_WATCH Aplikacja może wysyłać żądania powiązania z zegarkiem i zarządzania nim (za pomocą interfejsu API udostępnianego przez klasę CompanionDeviceManager). Gdy zegarek i aplikacja są połączone za pomocą interfejsu aplikacji, użytkownicy mogą zarządzać zegarkiem z poziomu aplikacji, w tym synchronizować kontakty i kalendarz oraz zarządzać powiadomieniami i połączeniami telefonicznymi.
SYSTEM_AUTOMOTIVE_PROJECTION Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja umożliwia wyświetlanie ekranu telefonu na wyświetlaczu w pojeździe. Umożliwia kierowcom dostęp do aplikacji na telefonach z Androidem i sterowanie nimi, w tym muzyką, nawigacją, połączeniami telefonicznymi i wyszukiwaniem, za pomocą mechanizmów wprowadzania danych w pojeździe, w tym dotyku, elementów sterujących na kierownicy i poleceń głosowych.
SYSTEM_SHELL Wszystkie:
  • Aplikacja jest aplikacją systemową, której przypisano identyfikator UID Process.SHELL_UID.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja udostępnia interfejs, który działa na poziomie wiersza poleceń, dzięki czemu użytkownicy mogą wchodzić w interakcje z systemem operacyjnym Android. Na przykład wyświetlanie zawartości folderu lub uruchamianie aplikacji. Polecenia powłoki mogą być wykonywane automatycznie przez aplikacje (jeśli przyznano im niezbędne uprawnienia) lub za pomocą narzędzia ADB.
SYSTEM_CONTACTS Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja udostępnia interfejs, który umożliwia użytkownikom zarządzanie kontaktami (np. wyświetlanie, udostępnianie, dodawanie, usuwanie i wyszukiwanie kontaktów). Aplikacja aktualizuje dostawcę kontaktów, gdy użytkownik aktualizuje swoje kontakty w aplikacji. Użytkownicy mogą też dzwonić do kontaktów oraz wysyłać im e-maile i SMS-y z poziomu aplikacji.
SYSTEM_SPEECH_RECOGNIZER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja udostępnia usługę, która może rozpoznawać mowę.
  • Gdy aplikacja otrzymuje strumienie mikrofonu na żywo z innej aplikacji na potrzeby rozpoznawania mowy, prawidłowo przypisuje użycie mikrofonu do aplikacji wywołującej i odpowiednio aktualizuje statystyki działania aplikacji.
SYSTEM_WIFI_COEX_MANAGER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja ma usługę, która dynamicznie ustawia listę kanałów Wi-Fi, których urządzenie powinno unikać ze względu na zakłócenia sieci komórkowej.
SYSTEM_WELLBEING Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja powinna umożliwiać użytkownikom ograniczenie rozpraszania uwagi i udostępniać im statystyki dotyczące korzystania z urządzenia (np. czas korzystania z urządzenia w tygodniu).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja musi wyświetlać powiadomienia z ostrzeżeniem użytkownikom na telewizorach. Aplikacja musi też wyświetlać bieżące aktywne powiadomienia, gdy wysyłana jest intencja android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL (z SystemUI).
SYSTEM_COMPANION_DEVICE_PROVIDER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja musi być w stanie wykrywać urządzenia peryferyjne w pobliżu. Musi mieć interfejs, w którym użytkownik może potwierdzić, że dane urządzenie peryferyjne powinno być powiązane z aplikacją i przez nią zarządzane. Gdy użytkownik to potwierdzi, aplikacja zarządzająca przyznaje powiązanej aplikacji uprawnienia aplikacji dostępu do urządzenia peryferyjnego (np. jego nazwy, adresu, klasy i stanu powiązania) i może rozpocząć proces powiązania.
SYSTEM_DOCUMENT_MANAGER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja zawiera aktywność, która umożliwia użytkownikom dostęp do istniejących dokumentów i tworzenie nowych dokumentów na urządzeniu.
  • Aplikacja musi spełniać wszystkie wymagania określone w sekcji 2.2.3 dokumentu CDD dotyczącego Androida. Software w nagłówku [3.2.3.1/H-0-1].
SYSTEM_ACTIVITY_RECOGNIZER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Aplikacja ma usługę chronioną przez uprawnienie android.permission.ACTIVITY_RECOGNITION, która może rozpoznawać aktywność (np. bieganie lub jazdę na rowerze).
SYSTEM_UI Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja ma interfejs, który umożliwia użytkownikom interakcję z telefonami. Na przykład: ekran główny telefonu, nawigacja, ostatnie aplikacje, szybkie ustawienia, pasek powiadomień, ekran blokady, sterowanie głośnością.
SYSTEM_TELEVISION_REMOTE_SERVICE Wszystkie:
  • Aplikacja jest aplikacją systemową na Androidzie TV.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja ma usługę, która może komunikować się z urządzeniem HID pilota do telewizora (np. przez BLE), wstrzykiwać zdarzenia (np. kliknięcia przycisków) i wysyłać inne dane (np. strumień audio z mikrofonu wbudowanego w pilota) do platformy.
SYSTEM_UI_INTELLIGENCE Wszystkie:
  • być wstępnie zainstalowaną usługą, która za pomocą interfejsów API platformy (publicznych lub systemowych) udostępnia na urządzeniu inteligentny procesor do obsługi funkcji interfejsu systemu (np. przewidywania i wyświetlania kolejnych aplikacji dla użytkowników);
  • Usługa musi spełniać wszystkie wymagania opisane w sekcji 9.8.6 Przechwytywanie treści dokumentu CDD Androida.
  • Usługa nie może mieć uprawnienia android.permission.INTERNET. Zamiast tego musi uzyskiwać dostęp do internetu za pomocą dobrze zdefiniowanych interfejsów API w projekcie open source.
  • Usługa nie może wiązać się z aplikacjami, z wyjątkiem tych aplikacji systemowych: Bluetooth, Kontakty, Multimedia, Telefonia, SystemUI i komponenty udostępniające interfejsy API internetu. Każde dozwolone powiązanie musi być skonfigurowane bezpośrednio za pomocą konfiguracji <allow-association> w konfiguracji systemu.
  • Usługa nie może udostępniać danych aplikacjom, chyba że użytkownik wykona bezpośrednie działanie (np. za każdym razem, gdy dane są udostępniane, użytkownik musi nacisnąć przycisk).
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE Wszystkie:
  • Identyczne jak warunki dla SYSTEM_UI_INTELLIGENCE, z tym że wstępnie zainstalowana usługa zapewnia inteligentny procesor na urządzeniu do obsługi dźwięku z otoczenia (np. rozpoznawania utworów odtwarzanych w pobliżu urządzenia).
SYSTEM_AUDIO_INTELLIGENCE Wszystkie:
  • Identyczne jak warunki dotyczące SYSTEM_UI_INTELLIGENCE, z tym że wstępnie zainstalowana usługa udostępnia inteligentny procesor na urządzeniu do obsługi dźwięku (np. napisy do filmów, podcastów wideo, rozmów telefonicznych, rozmów wideo i wiadomości głosowych).
SYSTEM_NOTIFICATION_INTELLIGENCE Wszystkie:
  • Identyczne z warunkami dla SYSTEM_UI_INTELLIGENCE, z tym że wstępnie zainstalowana usługa udostępnia na urządzeniu inteligentny procesor powiadomień (np. sugerowane odpowiedzi i działania w przypadku powiadomień o wiadomościach).
SYSTEM_TEXT_INTELLIGENCE Wszystkie:
  • Identyczne z warunkami dla SYSTEM_UI_INTELLIGENCE, z tym że wstępnie zainstalowana usługa udostępnia na urządzeniu inteligentny procesor do obsługi tekstu (np. zapewniający tłumaczenie na żywo lub autouzupełnianie).
SYSTEM_VISUAL_INTELLIGENCE Wszystkie:
  • Identyczne z warunkami dla SYSTEM_UI_INTELLIGENCE, z tym że wstępnie zainstalowana usługa zapewnia na urządzeniu inteligentny procesor do funkcji wizualnych, który obejmuje analizowanie danych z kamery. Może to być na przykład utrzymywanie włączonego ekranu telefonu, gdy użytkownik na niego patrzy, lub określanie idealnej orientacji ekranu na podstawie orientacji twarzy użytkownika z przedniego aparatu urządzenia.
COMPANION_DEVICE_APP_STREAMING Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Dozwolone przypadki użycia:
    • Strumieniowanie, przesyłanie lub powielanie aplikacji, które umożliwiają strumieniowanie, przesyłanie lub powielanie z urządzenia z Androidem, takiego jak telefon komórkowy lub tablet, na komputer stacjonarny lub laptop.
  • Podczas nawiązywania początkowego połączenia z urządzenia A do urządzenia B:
    • Parowanie MUSI być autoryzowane za pomocą jednorazowego kodu wyświetlanego na urządzeniu źródłowym (A) i wprowadzonego na połączonym urządzeniu (B). Jeśli oba urządzenia mają co najmniej 1 pasujące konto w Android AccountManager, użytkownik MOŻE potwierdzić parowanie, wpisując hasło do konta na połączonym urządzeniu (B).
    • Podczas parowania oba urządzenia muszą znajdować się blisko siebie 1.
  • Podczas strumieniowania oba urządzenia muszą znajdować się blisko siebie 1.
  • Aplikacja może tworzyć kanały komunikacji z połączonymi urządzeniami i nimi zarządzać, aby urządzenia mogły wymieniać dane. Aplikacja i połączone urządzenia MUSZĄ pomyślnie uwierzytelnić się nawzajem (np. przez udowodnienie znajomości kluczy udostępnionych), aby ustanowić te kanały komunikacji. Kanały komunikacji MUSZĄ być chronione za pomocą pełnego szyfrowania.
  • Aplikacja może wysyłać powiadomienia z urządzenia źródłowego (A) na połączone urządzenie (B), aby użytkownik mógł podejmować działania na powiadomieniach na połączonym urządzeniu (B).
  • mieć możliwość przesyłania strumieniowego metadanych niezbędnych do strumieniowego przesyłania aplikacji na połączone urządzenie (B), takich jak lista aplikacji dostępnych na urządzeniu źródłowym (A).
  • mieć możliwość strumieniowego przesyłania aplikacji z urządzenia źródłowego (A) na połączone urządzenie (B) po wyrażeniu przez użytkownika wyraźnej zgody (na urządzeniu źródłowym (A) lub na połączonym urządzeniu (B)).
  • Możliwość ponownego odtwarzania (wstrzykiwania) zdarzeń, które mają miejsce w aplikacji przesyłanej strumieniowo na połączonym urządzeniu (B), na urządzeniu źródłowym (A). Na przykład odtworzenie zdarzenia dotknięcia na połączonym urządzeniu (B) z tymi samymi współrzędnymi co na urządzeniu źródłowym (A) lub odtworzenie zdarzenia wejściowego, które wystąpiło na połączonym urządzeniu (B), z tą samą semantyką wejściową co na urządzeniu źródłowym (A).
  • Aplikacja może zastąpić strumień mikrofonu urządzenia źródłowego strumieniem mikrofonu połączonego urządzenia, gdy aplikacja do odtwarzania strumieniowego korzysta z mikrofonu.
  • Aplikacja przechwytuje dźwięk z urządzenia źródłowego (A) i przesyła go strumieniowo do połączonego urządzenia (B).
  • ZALECAMY zablokowanie dostępu do aplikacji ustawień i sklepów z aplikacjami na połączonym urządzeniu (B).
  • Począwszy od Androida 16, robienie zrzutów ekranu i odczytywanie ekranu z treściami poufnymi, takimi jak bezpieczne okna i powierzchnie, MUSI być uniemożliwione na połączonym urządzeniu (B).
  • MUSI weryfikować integralność kompilacji systemu operacyjnego połączonego urządzenia (np. za pomocą atestacji urządzenia, jak opisano w VerifiedBootState).
  • Aplikacje do odtwarzania strumieniowego można uruchamiać tylko wtedy, gdy w rejestrze kont na urządzeniu (np. klasa AccountManager na Androidzie) na obu urządzeniach jest tylko jedno pasujące konto. Jeśli tak nie jest, strumieniowanie MUSI zostać autoryzowane za pomocą jednorazowego kodu wyświetlanego na urządzeniu źródłowym (A) i wprowadzonego na połączonym urządzeniu (B). Pamiętaj, że w przypadku urządzeń, które obsługują wielu użytkowników (a nie wiele kont) z taką samą niezawodną izolacją danych jak w Androidzie, użytkownik jest liczony jako urządzenie.
  • MUSI natychmiast zatrzymać strumieniowanie i rozłączyć się z połączonym urządzeniem (B), jeśli uwierzytelnianie konta na połączonym urządzeniu (B) wygaśnie lub zostanie unieważnione.
  • MUSI zatrzymać strumieniowanie i rozłączyć się z połączonym urządzeniem (B) po upływie czasu oczekiwania na połączonym urządzeniu (B), na którym wyświetlane są treści. MOŻE utrzymywać włączony ekran połączonego urządzenia w przypadkach takich jak WakeLock, które utrzymują włączony ekran urządzenia z Androidem. Limit czasu bezczynności MUSI być podany. Jeśli połączone urządzenie (B) nie ma własnego limitu czasu bezczynności, MUSI być używany limit czasu bezczynności wynoszący maksymalnie 5 minut.
  • Jeśli urządzenie źródłowe (A) używa czynnika wiedzy na ekranie blokady (LSKF), gdy ekran jest zablokowany, aplikacja NIE MOŻE przesyłać strumieniowo aplikacji na połączone urządzenie (B), chyba że połączone urządzenie (B) ma ekran blokady i jest odblokowane.
  • Jeśli urządzenie źródłowe (A) jest zarządzane przez administratora, aplikacja MUSI przestrzegać zasad ustawionych przez administratora dotyczących włączania lub wyłączania strumieniowego przesyłania na urządzenia w pobliżu (np. za pomocą ustawień DevicePolicyManager na Androidzie).
  • MUSI zapewnić, że wyświetlacze zdalne i wszystkie źródła zdarzeń zdalnych danych wejściowych należą do tego samego urządzenia logicznego (np. wyświetlacz zdalny i podłączona klawiatura) z perspektywy użytkownika, a zdarzenia są odpowiednio kierowane.
  • Użytkownik MUSI mieć możliwość zakończenia strumieniowego przesyłania z urządzenia źródłowego (A), na przykład za pomocą przycisku w trwałym powiadomieniu. Jeśli urządzenie źródłowe (A) ma ustawioną blokadę ekranu, ta funkcja jest ograniczona przez ekran blokady. MUSI wyświetlać na urządzeniu źródłowym (A) trwałą opcję, która jest zawsze widoczna i znajduje się w górnej części strony.
  • MUSI wyświetlać na urządzeniu źródłowym (A) element interfejsu, gdy strumieniowanie odbywa się na innym urządzeniu, np. ikonę na pasku stanu lub stałe powiadomienie.
DEVICE_POLICY_MANAGEMENT Wszystkie:
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji. Aplikacje nie mogą prosić o tę rolę, ponieważ jest ona przyznawana od razu nazwie pakietu zdefiniowanej przez producenta OEM w momencie wysyłki urządzenia.
  • Aplikacja musi umożliwiać udostępnianie profilu zarządzanego (właściciel profilu) lub urządzenia zarządzanego (właściciel urządzenia), w tym pobieranie i instalowanie odpowiedniego klienta zasad dotyczących urządzeń, który w razie potrzeby będzie właścicielem urządzenia lub profilu.
  • Aplikacja może opcjonalnie dynamicznie aktualizować zasoby, takie jak ciągi znaków czy elementy rysowalne używane do zarządzania zasadami dotyczącymi urządzeń.
  • Aplikacja może być wstępnie zainstalowaną aplikacją systemową lub zostać pobrana i zainstalowana przed udostępnieniem.
  • W przypadku udostępniania właściciela profilu, gdy aplikacja z rolą jest zainstalowana na danym użytkowniku Androida, musi być zainstalowana na wszystkich odpowiednich profilach tego użytkownika.
SYSTEM_APP_PROTECTION_SERVICE Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Jedynym celem aplikacji jest wykrywanie potencjalnie szkodliwych aplikacji (aplikacji, które mogą narazić na ryzyko użytkowników, ich dane lub urządzenia, takich jak trojany, aplikacje wyłudzające informacje i programy szpiegowskie) lub niechcianego oprogramowania mobilnego.
  • Aplikacja musi spełniać wszystkie wymagania opisane w sekcji 9.8.6 dokumentu CDD dotyczącego Androida. dane na poziomie systemu operacyjnego i dane o otoczeniu.
  • Aplikacja nie może deklarować uprawnienia android.permission.INTERNET. Zamiast tego musi uzyskiwać dostęp do internetu za pomocą dobrze zdefiniowanych interfejsów API w projekcie open source.
  • Aplikacja nie może wiązać się z innymi aplikacjami, z wyjątkiem tych aplikacji systemowych: kontroler uprawnień oraz komponenty udostępniające interfejsy API telefonii i internetu. Każde dozwolone powiązanie musi być skonfigurowane bezpośrednio za pomocą konfiguracji <allow-association> w konfiguracji systemu.
  • Aplikacja nie może udostępniać danych innym aplikacjom, chyba że użytkownik wykona bezpośrednie działanie (np. wyraźnie naciśnie przycisk za każdym razem, gdy dane są udostępniane).
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Aplikacja musi przenieść dane kalendarza z telefonu użytkownika z iOS lub Androidem na urządzenie z Androidem Auto. Urządzenie z Androidem Auto musi przechowywać te dane kalendarza w dostawcy kalendarza.
  • Aplikacja musi udostępniać na telefonie komponent interfejsu, za pomocą którego użytkownik może włączyć synchronizację kalendarza i wybrać kalendarze do synchronizacji. Aplikacja musi udostępniać na telefonie komponent interfejsu, za pomocą którego użytkownik może wyłączyć synchronizację kalendarza.
  • Aplikacja powinna działać bez połączenia z internetem. Możesz na przykład użyć bezpośrednich połączeń przewodowych lub bezprzewodowych.
AUTOMOTIVE_NAVIGATION Wszystkie:
  • Aplikacja ma aktywność, którą inne aplikacje mogą wywoływać za pomocą żądań intencji niejawnych, która pokazuje bieżącą lokalizację użytkownika i jego otoczenie.
  • Aplikacja zawiera aktywność, którą inne aplikacje mogą wywoływać za pomocą żądań intencji niejawnych, co pozwala użytkownikowi przejść do określonej geolokalizacji.
  • Aplikacja ma aktywność, która jest uruchamiana na tablicy wskaźników, gdy aplikacja ma fokus nawigacji. Aktywność musi pokazywać bieżącą lokalizację użytkownika i jego otoczenie oraz umożliwiać mu nawigację do określonej lokalizacji geograficznej.
COMPANION_DEVICE_COMPUTER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Umożliwia użytkownikom wyświetlanie powiadomień oraz dostęp do zdjęć i multimediów z telefonu na połączonym komputerze.
SYSTEM_SETTINGS_INTELLIGENCE Co najmniej 1 z tych elementów:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Ma usługę, która udostępnia funkcje inteligentne w aplikacji Ustawienia, takie jak sugestie i wyszukiwanie.
NOTES Wszystkie:
COMPANION_DEVICE_GLASSES Aplikacja może wysyłać żądania powiązania z okularami i zarządzania nimi (za pomocą interfejsu API udostępnianego przez klasę CompanionDeviceManager). Gdy okulary i aplikacja są połączone za pomocą interfejsu udostępnianego przez CDM, użytkownicy mogą zarządzać okularami, dając im dostęp do kontaktów oraz uprawnienia do zarządzania powiadomieniami i połączeniami telefonicznymi.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tylko producenci OEM mogą przyznać tę rolę aplikacji.
  • Dozwolone przypadki użycia:
    • Strumieniowe przesyłanie aplikacji z urządzenia z Androidem, takiego jak telefon komórkowy lub tablet, do pojazdu.
    • Strumieniowe przesyłanie aplikacji z urządzenia z Androidem, takiego jak telefon komórkowy lub tablet, na urządzenie z XR.
  • Podczas nawiązywania początkowego połączenia z urządzenia A do urządzenia B:
    • Parowanie MUSI być autoryzowane za pomocą jednorazowego kodu wyświetlanego na urządzeniu źródłowym (A) i wprowadzonego na połączonym urządzeniu (B). Jeśli oba urządzenia mają co najmniej 1 pasujące konto w Android AccountManager, użytkownik MOŻE potwierdzić parowanie, wpisując hasło do konta na połączonym urządzeniu (B).
    • Podczas parowania oba urządzenia muszą znajdować się blisko siebie 1.
  • Podczas strumieniowania oba urządzenia muszą znajdować się blisko siebie 1.
  • Aplikacja może tworzyć kanały komunikacji z połączonymi urządzeniami i nimi zarządzać, aby urządzenia mogły wymieniać dane. Aplikacja i połączone urządzenia MUSZĄ pomyślnie uwierzytelnić się nawzajem (np. przez udowodnienie znajomości kluczy udostępnionych), aby ustanowić te kanały komunikacji. Kanały komunikacji MUSZĄ być chronione za pomocą pełnego szyfrowania.
  • Aplikacja może wysyłać powiadomienia z urządzenia źródłowego (A) na połączone urządzenie (B), aby użytkownik mógł podejmować działania na powiadomieniach na połączonym urządzeniu (B).
  • mieć możliwość przesyłania strumieniowego metadanych niezbędnych do strumieniowego przesyłania aplikacji na połączone urządzenie (B), takich jak lista aplikacji dostępnych na urządzeniu źródłowym (A).
  • mieć możliwość strumieniowego przesyłania aplikacji z urządzenia źródłowego (A) na połączone urządzenie (B) po wyrażeniu przez użytkownika wyraźnej zgody (na urządzeniu źródłowym (A) lub na połączonym urządzeniu (B)).
  • Możliwość ponownego odtwarzania (wstrzykiwania) zdarzeń, które mają miejsce w aplikacji przesyłanej strumieniowo na połączonym urządzeniu (B), na urządzeniu źródłowym (A). Na przykład odtworzenie zdarzenia dotknięcia na połączonym urządzeniu (B) z tymi samymi współrzędnymi co na urządzeniu źródłowym (A) lub odtworzenie zdarzenia wejściowego, które wystąpiło na połączonym urządzeniu (B), z tą samą semantyką wejściową co na urządzeniu źródłowym (A).
  • Aplikacja może zastąpić strumień mikrofonu urządzenia źródłowego strumieniem mikrofonu połączonego urządzenia, gdy aplikacja do odtwarzania strumieniowego korzysta z mikrofonu.
  • Aplikacja przechwytuje dźwięk z urządzenia źródłowego (A) i przesyła go strumieniowo do połączonego urządzenia (B).
  • ZALECAMY zablokowanie dostępu do aplikacji ustawień i sklepów z aplikacjami na połączonym urządzeniu (B).
  • Od Androida 16 robienie zrzutów ekranu i odczytywanie poufnych treści, takich jak bezpieczne okna i powierzchnie, MUSI być uniemożliwione na połączonym urządzeniu (B).
  • MUSI weryfikować integralność kompilacji systemu operacyjnego połączonego urządzenia (np. za pomocą atestacji urządzenia, jak opisano w VerifiedBootState).
  • Przesyłaj strumieniowo tylko aplikacje do odtwarzania strumieniowego, w przypadku których w rejestrze kont na urządzeniu (np. klasa AccountManager na Androidzie) na obu urządzeniach jest tylko jedno pasujące konto. Jeśli tak nie jest, strumieniowanie MUSI zostać autoryzowane za pomocą jednorazowego kodu wyświetlanego na urządzeniu źródłowym (A) i wprowadzonego na połączonym urządzeniu (B). Pamiętaj, że w przypadku urządzeń, które obsługują wielu użytkowników (a nie wiele kont) z taką samą niezawodną izolacją danych jak w Androidzie, użytkownik jest liczony jako urządzenie.
  • MUSI natychmiast zatrzymać strumieniowanie i rozłączyć się z połączonym urządzeniem (B), jeśli uwierzytelnianie konta na połączonym urządzeniu (B) wygaśnie lub zostanie unieważnione.
  • MUSI zatrzymać strumieniowanie i rozłączyć się z połączonym urządzeniem (B) po upływie czasu oczekiwania na połączonym urządzeniu (B), na którym wyświetlane są treści. MOŻE utrzymywać włączony ekran połączonego urządzenia w przypadkach takich jak WakeLock, które utrzymują włączony ekran urządzenia z Androidem. Limit czasu bezczynności MUSI być podany. Jeśli połączone urządzenie (B) nie ma własnego limitu czasu bezczynności, MUSI być używany limit czasu bezczynności wynoszący maksymalnie 5 minut.
  • Jeśli urządzenie źródłowe (A) używa czynnika wiedzy na ekranie blokady (LSKF), gdy ekran jest zablokowany, aplikacja NIE MOŻE przesyłać strumieniowo aplikacji na połączone urządzenie (B), chyba że połączone urządzenie (B) ma ekran blokady i jest odblokowane.
  • Jeśli urządzenie źródłowe (A) jest zarządzane przez administratora, aplikacja MUSI przestrzegać zasad ustawionych przez administratora dotyczących włączania lub wyłączania strumieniowego przesyłania na urządzenia w pobliżu (np. za pomocą ustawień DevicePolicyManager na Androidzie).
  • MUSI zapewnić, że wyświetlacze zdalne i wszystkie źródła zdarzeń zdalnych danych wejściowych należą do tego samego urządzenia logicznego (np. wyświetlacz zdalny i podłączona klawiatura) z perspektywy użytkownika, a zdarzenia są odpowiednio kierowane.
  • Użytkownik MUSI mieć możliwość zakończenia strumieniowego przesyłania z urządzenia źródłowego (A), na przykład za pomocą przycisku w trwałym powiadomieniu. Jeśli urządzenie źródłowe (A) ma ustawioną blokadę ekranu, ta funkcja jest ograniczona przez ekran blokady. MUSI wyświetlać na urządzeniu źródłowym (A) trwałą opcję, która jest zawsze widoczna i znajduje się w górnej części strony.
  • MUSI wyświetlać na urządzeniu źródłowym (A) element interfejsu, gdy strumieniowanie odbywa się na innym urządzeniu, np. ikonę na pasku stanu lub stałe powiadomienie.
WALLET Jedna z tych wartości:
  • Aplikacja ma usługę NFC APDU, która statycznie rejestruje co najmniej 1 AID w kategorii PŁATNOŚĆ.
  • Aplikacja implementuje instancję QuickAccessWalletService.

1 Bliskość oznacza, że oba urządzenia znajdują się w zasięgu Bluetooth lub Wi-Fi albo korzystają z tej samej sieci lokalnej.