Role w Androidzie

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

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

Rola Wymagania
ASSISTANT Co najmniej 1 z tych elementów:
  • Aplikacja ma aktywność, która wykonuje działania wspomagające na podstawie informacji o kontekście użytkownika w momencie, gdy poprosił on o pomoc (np. nazwa pakietu bieżącej aplikacji na pierwszym planie i informacje kontekstowe).
  • Aplikacja ma zawsze włączoną usługę interakcji głosowej, która jest chroniona uprawnieniem android.permission.BIND_VOICE_INTERACTION. Może ona rozpoznawać głos i obsługiwać aktywne sesje interakcji głosowej. Aplikacja ma też wyraźną flagę wskazującą, że usługa może obsługiwać działanie pomocy.
BROWSER Wszystkie:
  • Aplikacja ma Activity, którą inne aplikacje mogą wywoływać za pomocą żądań z użyciem intencji ogólnej. Wyświetla ona 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 http://adres w tekście, aplikacja musi być w stanie wyświetlić treść odpowiadającą wybranemu linkowi bez dodatkowej interwencji użytkownika.
  • Aplikacja musi być w stanie przekazywać stronom internetowym aktualne informacje o geolokalizacji urządzenia, gdy jest to wymagane, a użytkownik zatwierdzi żądanie.
DIALER Wszystkie:
  • Aplikacja ma aktywność, którą inne aplikacje mogą wywoływać za pomocą żądań niejawnego zamiaru, co zapewnia interfejs użytkownika podczas 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 nawiązywanie 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 ma aktywność, którą inne aplikacje mogą wywoływać za pomocą żądań z intencją ogólną, co może spowodować wysłanie wiadomości na numer telefonu.
  • Aplikacja ma usługę chronioną uprawnieniem android.permission.SEND_RESPOND_VIA_MESSAGE, którą można wywołać za pomocą niejawnych intencji. Może ona dostarczać wiadomości otrzymane z aplikacji Telefon, gdy użytkownik zdecyduje się odpowiedzieć za pomocą wiadomości podczas połączenia przychodzącego. Aplikacja może dostarczać wiadomości za pomocą własnego systemu przesyłania wiadomości.
  • Aplikacja ma 2 odbiorniki transmisji: jeden z uprawnieniem android.permission.BROADCAST_SMS, a drugi z uprawnieniem android.permission.BROADCAST_WAP_PUSH. Mogą one odpowiednio nasłuchiwać SMS-ów i MMS-ów wysyłanych na urządzenie. Aplikacja jest następnie odpowiedzialna za zapisywanie wiadomości u dostawcy SMS-ów i powiadamianie użytkowników.
EMERGENCY Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Aplikacja ma aktywność, która wyświetla informacje alarmowe użytkownika. Każdy może przejść do tego ekranu, klikając przycisk Alarmowy w aplikacji Alarmowy dialer.
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, a nawigacja powinna być oparta na przyciskach lub gestach (np. przesunięcie palcem w górę, aby wyświetlić wszystkie aplikacje).
CALL_REDIRECTION Aplikacja ma usługę chronioną uprawnieniem android.permission.BIND_CALL_REDIRECTION_SERVICE, z którą może się połączyć 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 postaci.
  • Zmień numer wychodzący, aby kierować połączenia przez numer proxy.
  • Anuluj połączenie.
CALL_SCREENING Aplikacja ma usługę chronioną uprawnieniem android.permission.BIND_SCREENING_SERVICE, która pełni 2 funkcje:
  • Blokowanie i filtrowanie połączeń: usługa może wybierać, które połączenia mają być przesyłane do aplikacji Telefon na telefonie (i potencjalnie dzwonić, biorąc pod uwagę tryb Nie przeszkadzać lub głośność), a które mają być cicho przesyłane na pocztę głosową.
  • Identyfikacja połączeń: usługa może identyfikować połączenia i wyświetlać informacje o nich w interfejsie użytkownika.
SUPERVISION Wszystkie:
  • Aplikacja jest aplikacją systemową lub wstępnie zainstalowaną usługą.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Jedynym celem aplikacji jest umożliwienie rodzicowi lub opiekunowi prawnemu użytkownika zarządzania urządzeniem.
  • Aplikacja musi udostępniać na urządzeniu element interfejsu, za pomocą którego uprawniony użytkownik może wyłączyć rolę nadzorcy.
SYSTEM_GALLERY Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Aplikacja udostępnia interfejs użytkownika do przechowywania, porządkowania i wyświetlania filmów i obrazów.
SYSTEM_AUTOMOTIVE_CLUSTER Wszystkie:
  • Aplikacja jest aplikacją systemową na platformie Automotive.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Aplikacja umożliwia użytkownikom odbieranie połączeń telefonicznych oraz dostęp do list kontaktów i rejestrów połączeń na wyświetlaczu samochodowym (zwykle obok kierownicy).
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 udostępnianego przez aplikację, 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ą.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Aplikacja umożliwia wyświetlanie ekranu telefonu na wyświetlaczu w samochodzie. 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 wejściowych 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.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Aplikacja udostępnia interfejs działający 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 programowo przez aplikacje (pod warunkiem przyznania niezbędnych uprawnień) lub za pomocą narzędzia ADB.
SYSTEM_CONTACTS Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Aplikacja udostępnia interfejs użytkownika do zarządzania kontaktami (np. wyświetlania, udostępniania, dodawania, usuwania lub wyszukiwania kontaktu). Aplikacja aktualizuje dostawcę kontaktów, gdy użytkownik aktualizuje kontakty w aplikacji. Użytkownicy mogą też dzwonić do kontaktów, wysyłać do nich e-maile i SMS-y z poziomu aplikacji.
SYSTEM_SPEECH_RECOGNIZER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Aplikacja udostępnia usługę, która może rozpoznawać mowę.
  • Gdy aplikacja otrzymuje strumienie danych z 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ą.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • 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 komórkowe.
SYSTEM_WELLBEING Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Aplikacja powinna umożliwiać użytkownikom ograniczenie rozpraszania uwagi i wyświetlać statystyki dotyczące sposobu korzystania z urządzenia (np. czas korzystania z urządzenia w ciągu tygodnia).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Aplikacja musi wyświetlać użytkownikom powiadomienia w formie wyskakujących okienek na urządzeniach TV. Aplikacja musi też wyświetlać bieżące aktywne powiadomienia, gdy wysyłany jest zamiar android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL (z SystemUI).
SYSTEM_COMPANION_DEVICE_PROVIDER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • 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 potwierdzi, aplikacja zarządzająca przyznaje powiązanej aplikacji uprawnienia dostępu do urządzenia peryferyjnego (np. jego nazwy, adresu, klasy i stanu parowania) i może rozpocząć proces parowania.
SYSTEM_DOCUMENT_MANAGER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Aplikacja ma 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 dla Androida. Oprogramowanie w sekcji [3.2.3.1/H-0-1].
SYSTEM_ACTIVITY_RECOGNIZER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Aplikacja ma usługę chronioną przez android.permission.ACTIVITY_RECOGNITION, która może rozpoznawać aktywność (np. bieganie lub jazdę na rowerze).
SYSTEM_UI Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Aplikacja ma interfejs, który umożliwia użytkownikom obsługę telefonów. Na przykład ekran główny telefonu, nawigacja, ostatnio używane aplikacje, szybkie ustawienia, pasek powiadomień, ekran blokady, regulacja głośności.
SYSTEM_TELEVISION_REMOTE_SERVICE Wszystkie:
  • Aplikacja jest aplikacją systemową na Androidzie TV.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • 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) na platformę.
SYSTEM_UI_INTELLIGENCE Wszystkie:
  • Jest to preinstalowana usługa, 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 użytkownikom kolejnych aplikacji).
  • Usługa musi spełniać wszystkie wymagania określone w sekcji 9.8.6 Przechwytywanie treści dokumentu CDD dla 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 się wiązać 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 jawnie 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 wyraźnie nacisnąć przycisk).
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE Wszystkie:
  • Identyczne jak w przypadku SYSTEM_UI_INTELLIGENCE, z tym wyjątkiem, że preinstalowana usługa udostępnia na urządzeniu inteligentny procesor dźwięku otoczenia (np. rozpoznawanie utworów odtwarzanych w pobliżu urządzenia).
SYSTEM_AUDIO_INTELLIGENCE Wszystkie:
  • Identyczne jak w przypadku SYSTEM_UI_INTELLIGENCE, z tym że preinstalowana usługa zapewnia na urządzeniu inteligentny procesor dźwięku (np. do tworzenia napisów do filmów, podcastów, rozmów telefonicznych, połączeń wideo i wiadomości głosowych).
SYSTEM_NOTIFICATION_INTELLIGENCE Wszystkie:
  • Identyczne jak w przypadku warunków dla SYSTEM_UI_INTELLIGENCE, z tym wyjątkiem, że preinstalowana usługa udostępnia na urządzeniu inteligentny procesor powiadomień (np. sugerujący odpowiedzi i działania w przypadku powiadomień o wiadomościach).
SYSTEM_TEXT_INTELLIGENCE Wszystkie:
  • Identyczne z warunkami dla SYSTEM_UI_INTELLIGENCE, z tym że preinstalowana usługa udostępnia na urządzeniu inteligentny procesor tekstu (np. tłumaczenie na żywo lub autouzupełnianie).
SYSTEM_VISUAL_INTELLIGENCE Wszystkie:
  • Identyczne z warunkami dla SYSTEM_UI_INTELLIGENCE, z tym wyjątkiem, że wstępnie zainstalowana usługa udostępnia na urządzeniu inteligentny procesor funkcji wizualnych, który analizuje dane z kamery. Może to być na przykład utrzymywanie włączonego ekranu telefonu, gdy użytkownik na niego patrzy, lub określanie optymalnej orientacji ekranu na podstawie orientacji twarzy użytkownika wykrywanej przez przedni aparat urządzenia.
COMPANION_DEVICE_APP_STREAMING Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • 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 pierwszego połączenia z urządzenia A do urządzenia B:
    • Parowanie MUSI zostać autoryzowane za pomocą jednorazowego kodu wyświetlanego na urządzeniu źródłowym (A) i wpisywanego na połączonym urządzeniu (B). Jeśli na obu urządzeniach jest co najmniej jedno pasujące konto w usłudze AccountManager na Androidzie, 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Ą się wzajemnie uwierzytelnić (np. poprzez potwierdzenie znajomości wspólnych kluczy), aby utworzyć te kanały komunikacji. Kanały komunikacji MUSZĄ być chronione pełnym szyfrowaniem.
  • Aplikacja może wysyłać powiadomienia z urządzenia źródłowego (A) na połączone urządzenie (B), aby umożliwić użytkownikowi podjęcie działań związanych z tymi powiadomieniami na połączonym urządzeniu (B).
  • przesyłać strumieniowo metadane niezbędne do strumieniowego przesyłania aplikacji na połączone urządzenie (B), takie jak lista aplikacji dostępnych na urządzeniu źródłowym (A);
  • umożliwiać przesyłanie strumieniowe aplikacji z urządzenia źródłowego (A) na połączone urządzenie (B) po tym, jak użytkownik wyrazi na to zgodę (na urządzeniu źródłowym (A) lub na połączonym urządzeniu (B)).
  • możliwość odtwarzania (wstrzykiwania) zdarzeń, które występują w strumieniowanej aplikacji na połączonym urządzeniu (B), z powrotem na urządzeniu źródłowym (A), np. odtwarzanie zdarzenia dotknięcia na połączonym urządzeniu (B) w tych samych współrzędnych co na urządzeniu źródłowym (A) lub odtwarzanie 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ń z mikrofonu urządzenia źródłowego strumieniem z mikrofonu podłączonego urządzenia, gdy strumieniowana aplikacja używa mikrofonu.
  • Aplikacja rejestruje dźwięk z urządzenia źródłowego (A) i przesyła go strumieniowo do podłą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 wykonywanie zrzutów ekranu i odczytywanie treści poufnych, takich jak bezpieczne okna i platformy, MUSI być blokowane na połączonym urządzeniu (B).
  • MUSI weryfikować integralność kompilacji systemu operacyjnego podłączonego urządzenia (np. za pomocą atestu urządzenia, jak w VerifiedBootState).
  • Strumieniuj tylko aplikacje, w których na obu urządzeniach w rejestrze kont na urządzeniu jest tylko jedno pasujące konto (np. klasa AccountManager na Androidzie). W przeciwnym razie strumieniowanie MUSI być autoryzowane za pomocą jednorazowego kodu wyświetlanego na urządzeniu źródłowym (A) i wpisywanego na połączonym urządzeniu (B). Pamiętaj, że w przypadku urządzeń obsługujących wielu użytkowników (a nie wiele kont) z taką samą niezawodną izolacją danych jak w Androidzie w trybie wielu użytkowników użytkownik jest traktowany jako urządzenie.
  • MUSI natychmiast przerwać strumieniowanie i odłączyć się od połączonego urządzenia (B), jeśli uwierzytelnianie konta na połączonym urządzeniu (B) wygaśnie lub zostanie cofnięte.
  • MUSI zatrzymać strumieniowanie i odłączyć się od połączonego urządzenia (B), gdy połączone urządzenie (B), na którym wyświetlane są treści, osiągnie limit czasu bezczynności. MOŻE utrzymywać włączony ekran podłączonego urządzenia w przypadkach, takich jak WakeLock, które utrzymują włączony ekran urządzenia z Androidem. Musi być podany czas oczekiwania bezczynności. Jeśli podłą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 o 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 przesyłania strumieniowego na urządzenia w pobliżu (np. za pomocą DevicePolicyManagerustawień na Androidzie).
  • MUSI zapewnić, że zdalne wyświetlacze i wszystkie źródła zdalnych zdarzeń wejściowych należą do tego samego urządzenia logicznego (np. zdalny wyświetlacz i podłączona klawiatura) z perspektywy użytkownika, a zdarzenia są odpowiednio kierowane.
  • Użytkownik MUSI mieć możliwość zakończenia strumieniowania z urządzenia źródłowego (A), na przykład za pomocą przycisku w trwałym powiadomieniu. To zachowanie jest ograniczone przez ekran blokady, jeśli urządzenie źródłowe (A) ma ustawioną blokadę ekranu. MUSI wyświetlać tę trwałą funkcję na urządzeniu źródłowym (A), która jest zawsze widoczna i znajduje się powyżej linii zagięcia.
  • MUSI wyświetlać element interfejsu na urządzeniu źródłowym (A), gdy strumieniowanie odbywa się na innym urządzeniu, np. ikonę na pasku stanu lub trwałe powiadomienie.
DEVICE_POLICY_MANAGEMENT Wszystkie:
  • Tę rolę może przyznać aplikacji tylko producent OEM. Aplikacje nie mogą o nią prosić, ponieważ ma ona być przyznawana od razu nazwie pakietu zdefiniowanej przez producenta OEM w momencie wysyłki urządzenia.
  • Aplikacja musi mieć możliwość udostępniania profilu zarządzanego (właściciela profilu) lub urządzenia zarządzanego (właściciela urządzenia), w tym pobierania i instalowania odpowiedniego klienta zasad urządzenia, 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 tekstowe czy elementy rysunkowe używane do zarządzania zasadami dotyczącymi urządzeń.
  • Aplikacja może być wstępnie zainstalowaną aplikacją systemową lub można ją pobrać i zainstalować przed udostępnieniem.
  • W przypadku udostępniania właścicielowi profilu, gdy aplikacja posiadacza roli jest zainstalowana na danym użytkowniku Androida, musi być zainstalowana we wszystkich odpowiednich profilach tego użytkownika.
SYSTEM_APP_PROTECTION_SERVICE Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Jedynym celem aplikacji jest wykrywanie potencjalnie szkodliwych aplikacji (takich, które mogą narazić użytkowników, dane użytkownika lub urządzenia na ryzyko, np. trojanów, aplikacji do phishingu i programów szpiegowskich) lub niechcianego oprogramowania mobilnego.
  • Aplikacja musi spełniać wszystkie wymagania określone w sekcji 9.8.6. Dane na poziomie systemu operacyjnego i dane otoczenia dokumentu CDD Androida.
  • Aplikacja nie może deklarować android.permission.INTERNET normalnego uprawnienia. Zamiast tego musi uzyskiwać dostęp do internetu za pomocą dobrze zdefiniowanych interfejsów API w projekcie open source.
  • Aplikacja nie może łączyć się z innymi aplikacjami, z wyjątkiem tych aplikacji systemowych: kontrolera uprawnień i komponentów udostępniających interfejsy API Telefonu i Internetu. Każde dozwolone połączenie musi być skonfigurowane w sposób jawny 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. za każdym razem, gdy dane są udostępniane, użytkownik wyraźnie naciśnie przycisk).
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Aplikacja musi przesyłać 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 usłudze 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 element interfejsu, za pomocą którego użytkownik może wyłączyć synchronizację kalendarza.
  • Aplikacja powinna działać bez połączenia z internetem. na przykład za pomocą bezpośrednich połączeń przewodowych lub bezprzewodowych.
AUTOMOTIVE_NAVIGATION Wszystkie:
  • Aplikacja ma aktywność, którą inne aplikacje mogą wywoływać za pomocą żądań intencji ogólnej, co pozwala wyświetlać bieżącą lokalizację użytkownika i otoczenie.
  • Aplikacja ma aktywność, którą inne aplikacje mogą wywoływać za pomocą żądań intencji ogólnej, co pozwala użytkownikowi przejść do określonej lokalizacji geograficznej.
  • Aplikacja ma aktywność, która jest uruchamiana w klastrze przyrządów, gdy aplikacja ma zaznaczenie nawigacji. Aktywność musi pokazywać bieżącą lokalizację użytkownika i otoczenie oraz umożliwiać mu przejście do określonej lokalizacji geograficznej.
COMPANION_DEVICE_COMPUTER Wszystkie:
  • Aplikacja jest aplikacją systemową.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Umożliwia użytkownikom klonowanie 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ą.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • ma usługę, która udostępnia funkcje oparte na sztucznej inteligencji 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, przyznają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ą.
  • Tę rolę może przyznać aplikacji tylko producent OEM.
  • Dozwolone przypadki użycia:
    • Strumieniowanie aplikacji z urządzenia z Androidem, takiego jak telefon komórkowy lub tablet, do pojazdu.
    • Strumieniowe przesyłanie aplikacji z urządzenia z systemem Android, takiego jak telefon komórkowy lub tablet, na urządzenie z XR.
  • Podczas nawiązywania pierwszego połączenia z urządzenia A do urządzenia B:
    • Parowanie MUSI zostać autoryzowane za pomocą jednorazowego kodu wyświetlanego na urządzeniu źródłowym (A) i wpisywanego na połączonym urządzeniu (B). Jeśli na obu urządzeniach jest co najmniej jedno pasujące konto w usłudze AccountManager na Androidzie, 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Ą się wzajemnie uwierzytelnić (np. poprzez potwierdzenie znajomości wspólnych kluczy), aby utworzyć te kanały komunikacji. Kanały komunikacji MUSZĄ być chronione pełnym szyfrowaniem.
  • Aplikacja może wysyłać powiadomienia z urządzenia źródłowego (A) na połączone urządzenie (B), aby umożliwić użytkownikowi podjęcie działań związanych z tymi powiadomieniami na połączonym urządzeniu (B).
  • przesyłać strumieniowo metadane niezbędne do strumieniowego przesyłania aplikacji na połączone urządzenie (B), takie jak lista aplikacji dostępnych na urządzeniu źródłowym (A);
  • umożliwiać przesyłanie strumieniowe aplikacji z urządzenia źródłowego (A) na połączone urządzenie (B) po tym, jak użytkownik wyrazi na to zgodę (na urządzeniu źródłowym (A) lub na połączonym urządzeniu (B)).
  • możliwość odtwarzania (wstrzykiwania) zdarzeń, które występują w strumieniowanej aplikacji na połączonym urządzeniu (B), z powrotem na urządzeniu źródłowym (A), np. odtwarzanie zdarzenia dotknięcia na połączonym urządzeniu (B) w tych samych współrzędnych co na urządzeniu źródłowym (A) lub odtwarzanie 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ń z mikrofonu urządzenia źródłowego strumieniem z mikrofonu podłączonego urządzenia, gdy strumieniowana aplikacja używa mikrofonu.
  • Aplikacja rejestruje dźwięk z urządzenia źródłowego (A) i przesyła go strumieniowo do podłączonego urządzenia (B).
  • ZALECAMY zablokowanie dostępu do aplikacji ustawień i sklepów z aplikacjami na połączonym urządzeniu (B).
  • Od Androida 25Q2 na połączonym urządzeniu (B) MUSI być uniemożliwione robienie zrzutów ekranu i odczytywanie ekranu w przypadku treści wrażliwych, takich jak bezpieczne okna i platformy.
  • MUSI weryfikować integralność kompilacji systemu operacyjnego podłączonego urządzenia (np. za pomocą atestu urządzenia, jak w VerifiedBootState).
  • Strumieniuj tylko aplikacje, w których na obu urządzeniach w rejestrze kont na urządzeniu jest tylko jedno pasujące konto (np. klasa AccountManager na Androidzie). W przeciwnym razie strumieniowanie MUSI być autoryzowane za pomocą jednorazowego kodu wyświetlanego na urządzeniu źródłowym (A) i wpisywanego na połączonym urządzeniu (B). Pamiętaj, że w przypadku urządzeń obsługujących wielu użytkowników (a nie wiele kont) z taką samą niezawodną izolacją danych jak w Androidzie w trybie wielu użytkowników użytkownik jest traktowany jako urządzenie.
  • MUSI natychmiast przerwać strumieniowanie i odłączyć się od połączonego urządzenia (B), jeśli uwierzytelnianie konta na połączonym urządzeniu (B) wygaśnie lub zostanie cofnięte.
  • MUSI zatrzymać strumieniowanie i odłączyć się od połączonego urządzenia (B), gdy połączone urządzenie (B), na którym wyświetlane są treści, osiągnie limit czasu bezczynności. MOŻE utrzymywać włączony ekran podłączonego urządzenia w przypadkach, takich jak WakeLock, które utrzymują włączony ekran urządzenia z Androidem. Musi być podany czas oczekiwania bezczynności. Jeśli podłą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 o 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 przesyłania strumieniowego na urządzenia w pobliżu (np. za pomocą DevicePolicyManagerustawień na Androidzie).
  • MUSI zapewnić, że zdalne wyświetlacze i wszystkie źródła zdalnych zdarzeń wejściowych należą do tego samego urządzenia logicznego (np. zdalny wyświetlacz i podłączona klawiatura) z perspektywy użytkownika, a zdarzenia są odpowiednio kierowane.
  • Użytkownik MUSI mieć możliwość zakończenia strumieniowania z urządzenia źródłowego (A), na przykład za pomocą przycisku w trwałym powiadomieniu. To zachowanie jest ograniczone przez ekran blokady, jeśli urządzenie źródłowe (A) ma ustawioną blokadę ekranu. MUSI wyświetlać tę trwałą funkcję na urządzeniu źródłowym (A), która jest zawsze widoczna i znajduje się powyżej linii zagięcia.
  • MUSI wyświetlać element interfejsu na urządzeniu źródłowym (A), gdy strumieniowanie odbywa się na innym urządzeniu, np. ikonę na pasku stanu lub trwałe powiadomienie.
WALLET Jedna z tych wartości:
  • Aplikacja ma usługę APDU NFC, która statycznie rejestruje co najmniej 1 identyfikator aplikacji w kategorii PŁATNOŚCI.
  • Aplikacja implementuje instancję QuickAccessWalletService.

1 Bliskość jest definiowana jako odległość między dwoma urządzeniami w zasięgu Bluetootha lub Wi-Fi albo korzystanie z tej samej sieci lokalnej.