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_GALLERY |
Wszystkie:
- Aplikacja jest aplikacją systemową.
- Tylko producenci OEM mogą przyznać tę rolę aplikacji.
- Aplikacja udostępnia interfejs, który umożliwia użytkownikom przechowywanie, porządkowanie i wyświetlanie filmów oraz obrazów.
|
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:
|
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.
|