Android 角色

角色是系統中與特定權限和權限相關聯的系統中的唯一名稱。應用程式可透過 Android API 要求保留特定角色,特別是在 RoleManager 類別中叫用方法。

以下列出可用的角色及其對應需求。

角色 規定
Google 助理 至少須選取下列其中一項:
  • 應用程式有一項活動,會根據使用者要求協助時提供的背景資訊 (例如目前前景應用程式的套件名稱及其背景資訊) 執行輔助動作。
  • 應用程式提供一律開啟的語音互動服務,這項服務受到 android.permission.BIND_VOICE_INTERACTION 權限管制,可執行語音辨識及代管主動語音互動工作階段。此外,應用程式還會有明確標記,指出服務能處理輔助動作。
瀏覽器 下列所有權限:
  • 應用程式有一個活動,應用程式可以透過隱含意圖要求叫用,顯示與 http:// 位址相對應的網頁。
  • 應用程式需要處理連結之間的導覽。也就是說,如果使用者正在瀏覽網頁時點選文字中的 http:// 地址,則應用程式必須能夠顯示與所選連結相對應的內容,而無需使用者進行額外操作。
  • 應用程式必須在收到要求並使用者核准要求時,才能在網頁提供裝置目前的地理位置資訊。
演講者 下列所有權限:
  • 應用程式有一個活動,應用程式可以透過隱含意圖要求叫用,以便在裝置通話時提供通話使用者介面。
  • 應用程式可處理來電意圖、向使用者顯示來電相關資訊 (例如來電者的電話號碼),並允許使用者接聽或拒接來電。
  • 應用程式可讓使用者透過裝置撥打電話及查看通話記錄。
簡訊 下列所有權限:
  • 應用程式符合所有簡訊應用程式規定
  • 應用程式有一個活動,應用程式可以透過隱含意圖要求叫用,該活動可以傳送訊息給電話號碼。
  • 應用程式提供一項受 android.permission.SEND_RESPOND_VIA_MESSAGE 權限管制,且由隱含意圖叫用的服務,能在使用者選擇在來電期間選擇透過訊息回應時,傳送來自「電話」應用程式的訊息。應用程式可透過自己的訊息系統傳送訊息。
  • 這個應用程式有兩個廣播接收器,一個受 android.permission.BROADCAST_SMS 權限管制,另一個受 android.permission.BROADCAST_WAP_PUSH 權限管制,可分別監聽傳送至裝置的簡訊和多媒體訊息。接著,應用程式會負責將訊息寫入簡訊服務供應商,並通知使用者。
緊急狀況 下列所有權限:
  • 應用程式是系統應用程式
  • 應用程式有一項活動會顯示使用者的緊急救援資訊。任何人都可以透過「緊急撥號」活動中的「緊急」按鈕前往這個畫面。
HOME 應用程式有一個活動,可在使用者按下主畫面按鈕時啟動主畫面。主畫面應顯示應用程式圖示和小工具,並支援根據按鈕或手勢進行瀏覽 (例如,向上滑動即可查看所有應用程式)。
呼叫重新導向 應用程式具有受 android.permission.BIND_CALL_REDIRECTION_SERVICE 權限管制的服務,可繫結至 Telecom 架構。服務接收來自 Telecom 架構的撥出電話號碼,並執行下列其中一項動作:
  • 允許通話依原樣進行。
  • 變更撥出號碼,透過 Proxy 號碼轉送。
  • 取消撥號。
CALL_SCREENING 應用程式有一項受 android.permission.BIND_SCREENING_SERVICE 權限管制的服務,可以執行兩項功能:
  1. 來電封鎖/過濾:服務可選擇要將哪些來電傳送到手機上的撥號應用程式 (可能會發出響鈴,且可能有響鈴),且應以靜音方式將來電傳送到語音信箱。
  2. 呼叫識別:服務可透過使用者介面識別並顯示通話相關資訊,
系統 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式提供使用者介面,方便使用者儲存、整理及顯示影片和圖片。
SYSTEM_AUTOMOTIVE_CLUSTER 下列所有權限:
  • 這款應用程式是 Automotive 上的系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 這個應用程式提供汽車儀表板螢幕的功能 (通常位於方向盤旁),讓使用者接聽來電,以及存取聯絡人清單和通話記錄。
COMPANION_DEVICE_WATCH 應用程式可以使用 CompanionDeviceManager 類別提供的 API,發出相關聯的要求,並用來管理手錶裝置。手錶與應用程式透過應用程式提供的 UI 連線後,使用者就可以透過應用程式管理手錶,包括同步處理聯絡人和日曆,以及管理通知和通話。
SYSTEM_AUTOMOTIVE_PROJECTION 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式可讓手機螢幕投射到車內螢幕。可讓駕駛人使用車輛的輸入機制 (包括觸控、方向盤控制項和語音指令) 存取及控制 Android 手機上的應用程式,包括音樂、導航、通話和 Google 搜尋。
SYSTEM_SHELL 下列所有權限:
  • 應用程式是獲派 Process.SHELL_UID UID 的系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式提供可在指令列層級運作的介面,方便使用者與 Android 作業系統互動。例如,顯示資料夾內容或啟動應用程式。應用程式 (須具備必要權限) 或 ADB 工具,都能以程式輔助方式執行殼層指令。
SYSTEM_聯絡人 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式提供使用者介面,方便使用者管理聯絡人 (例如查看、分享、新增、移除或搜尋聯絡人)。當使用者透過應用程式更新聯絡人資料時,應用程式會更新聯絡人供應程式。使用者也可以透過應用程式撥打電話、寄送電子郵件或傳送簡訊給聯絡人。
SYSTEM_SPEECH_RECOGNIZER 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式提供可執行語音辨識的服務。
  • 當應用程式從另一個應用程式接收到用於語音辨識的即時麥克風串流時,會將麥克風使用情況正確歸因於呼叫應用程式,並據此更新應用程式作業統計資料。
SYSTEM_WIFI_COEX_MANAGER 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式設有一項服務,可動態設定裝置因行動網路幹擾而應避免使用的 Wi-Fi 頻道清單。
SYSTEM_WELLBEING 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 此應用程式應該為使用者提供減少干擾的功能,並提供使用者有關自己裝置使用情形的統計資料 (例如每週螢幕時間)。
SYSTEM_TELEVISION_NOTIFICATION_HANDLER 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式必須向電視裝置上的使用者顯示抬頭通知。當 android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL 意圖 (透過 SystemUI) 傳送時,應用程式也必須顯示目前的有效通知。
SYSTEM_COMPANION_DEVICE_PROVIDER 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式必須能夠偵測週邊裝置,必須要有使用者介面,讓使用者確認特定週邊裝置應與應用程式建立關聯並管理。使用者確認後,管理應用程式會授予相關應用程式存取周邊裝置的權限 (例如名稱、位址、類別和繫結狀態),然後就能啟動綁定程序。
SYSTEM_DOCUMENT_MANAGER (SYSTEM_DOCUMENT_MANAGER) 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式有一項活動,可讓使用者存取現有文件,以及在裝置上建立新文件。
  • 應用程式必須滿足 Android CDD 第 2.2.3 節 (2.2.3.「軟體」。[3.2.3.1/H-0-1] 標題下方。
SYSTEM_ACTIVITY_RECOGNIZER 下列所有權限:
SYSTEM_UI 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式提供可讓使用者與手機互動的介面。例如手機的主畫面、導航、最近使用的應用程式、快速設定、通知列、螢幕鎖定、音量控制。
SYSTEM_TELEVISION_REMOTE_服務 下列所有權限:
  • 這款應用程式是 Android TV 上的系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式具有可與電視遙控器 HID 裝置通訊的服務 (例如透過 BLE)、插入事件 (例如按鈕點擊),並將其他資料 (例如遙控器內建的麥克風音訊串流) 傳送至平台。
SYSTEM_UI_INTELLIGENCE 下列所有權限:
  • 所連接的服務是透過架構 API (公用或系統 API)、系統 UI 功能的裝置端智慧處理器 (例如預測並顯示接下來的應用程式) 提供。
  • 服務必須滿足 Android CDD 中「9.8.6 內容擷取」一節所列的所有規定。
  • 不具有 android.permission.INTERNET 權限。而是必須透過開放原始碼專案中定義完善的 API 存取網際網路。
  • 無法繫結至應用程式,但下列系統應用程式除外:藍牙、聯絡人、媒體、電話、SystemUI,以及提供網際網路 API 的元件。每個允許的繫結都必須透過系統設定中的 <allow-association> 設定明確設定。
  • 除非使用者有直接操作 (例如,使用者每次共用資料時明確按下按鈕),否則應用程式無法與應用程式分享資料。
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE 下列所有權限:
  • SYSTEM_UI_INTELLIGENCE 的情況相同,但預先安裝的服務提供裝置端智慧處理器,可用於環境音訊 (例如辨識裝置附近播放的歌曲)。
SYSTEM_AUDIO_INTELLIGENCE 下列所有權限:
  • SYSTEM_UI_INTELLIGENCE 的條件相同,但預先安裝的服務提供裝置端音訊處理器 (例如為影片產生字幕、Podcast、手機通話、視訊通話和語音訊息)。
SYSTEM_NOTIFICATION_INTELLIGENCE 下列所有權限:
  • SYSTEM_UI_INTELLIGENCE 的條件相同,但預先安裝的服務會提供裝置端的智慧處理器來發出通知 (例如建議回覆訊息通知和執行動作)。
SYSTEM_TEXT_INTELLIGENCE 下列所有權限:
  • SYSTEM_UI_INTELLIGENCE 的情況相同,但預先安裝的服務會為文字提供裝置端智慧處理器 (例如提供即時翻譯或自動填入)。
SYSTEM_VISUAL_INTELLIGENCE 下列所有權限:
  • SYSTEM_UI_INTELLIGENCE 的條件相同,但預先安裝的服務提供裝置端智慧型處理器,用於處理需要分析相機資料的視覺功能。例如,在使用者看著手機螢幕時,讓螢幕保持運作,或根據裝置的前置鏡頭,根據使用者的面朝方向判斷理想的螢幕方向。
COMPANION_DEVICE_APP_STREAMING 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式可以建立及管理已連結裝置的通訊管道,以便交換資料。應用程式和連結的裝置必須成功驗證彼此 (例如透過證明他們擁有共用金鑰),才能建立這些通訊管道。通訊管道必須啟用加密防護功能。
  • 應用程式可以從本機裝置將通知傳送到已連結的裝置,讓使用者對已連結裝置上的通知採取行動。
  • 能夠將串流應用程式所需的中繼資料串流至已連結的裝置,例如本機裝置上可用的應用程式清單。
  • 在使用者明確表示同意 (使用手機或連結裝置) 執行此操作後,應用程式就能從本機裝置串流至已連結的裝置。
  • 能夠在本機裝置上重播 (插入) 串流應用程式發生的串流事件。舉例來說,您可以在手機的相同座標,在平板電腦上重播觸控事件。
  • 當串流的應用程式使用麥克風時,應用程式可將本機裝置的麥克風串流,替換為已連結裝置的麥克風串流。
  • 應用程式從裝置擷取音訊,並將音訊串流至已連結的裝置。
  • 串流應用程式使用相機時,必須封鎖本機裝置的相機串流。
  • 必須驗證已連結裝置的 OS 版本的完整性 (例如,使用 VerifiedBootState 中的裝置認證)。
  • 在兩部裝置中,只有在裝置端帳戶登錄中只有一個相符的帳戶 (例如 Android 上的「AccountManager」) 時,才能進行應用程式串流。如果情況不同,您必須使用來源裝置顯示的一次性代碼授權串流,並在已連結的裝置上輸入該代碼。請注意,如果裝置支援多使用者 (而非多重帳戶) 功能,且支援相同的可靠資料隔離功能 (例如 Android 多使用者),則只會計為一次裝置。
  • 如果連結裝置上的帳戶驗證過期或遭撤銷,必須立即停止串流及中斷連線裝置的連線。
  • 在串流之前和期間,必須驗證連結裝置在本機裝置的藍牙範圍內。
  • 如果使用者未在 5 分鐘內與連線的裝置互動 (例如鍵盤、觸控螢幕和滑鼠閒置),必須中斷執行中的應用程式串流工作階段。影片串流應用程式不受這項規定限制。
  • 如果來源裝置使用螢幕鎖定知識因素 (LSKF),除非裝置設有螢幕鎖定且處於解鎖狀態,否則應用程式不得在螢幕鎖定時串流至已連結的裝置。
  • 如果裝置是由管理員管理,應用程式必須遵循管理員針對啟用或停用鄰近裝置串流設定的政策 (例如使用 Android 中的 DevicePolicyManager 設定)。
  • 必須確保遠端顯示畫面和所有遠端輸入事件來源,從使用者的角度來看,兩者都屬於相同的邏輯裝置 (例如遠端螢幕和已連接的鍵盤),並據此轉送事件。
  • 使用者必須能夠從本機裝置結束串流,例如,在永久通知中使用按鈕。如果手機已設定螢幕鎖定,這項行為會受螢幕鎖定功能保護。
  • 在其他裝置進行串流時,必須在來源裝置上顯示預設用途,例如狀態列中的圖示或常駐通知。
裝置政策管理 下列所有權限:
  • 只有原始設備製造商 (OEM) 可以為應用程式授予這個角色。這個角色是供原始設備製造商 (OEM) 在裝置出貨時自行定義的套件名稱,因此應用程式無法要求取得這個角色。
  • 應用程式必須能夠佈建受管理的設定檔 (設定檔擁有者) 或受管理的裝置 (裝置擁有者),包括視需要下載/安裝適當的 Device Policy 用戶端為裝置/設定檔擁有者。
  • 應用程式可以選擇性地動態更新資源,例如字串、用於裝置政策管理的可繪項目。
  • 應用程式可能是預先安裝的系統應用程式,也可能在佈建前下載並安裝。
  • 針對設定檔擁有者佈建案例,在特定 Android 使用者上安裝角色持有者應用程式時,必須安裝在使用者的所有適用設定檔中。
SYSTEM_APP_PROTECTION_服務 下列所有權限:
  • 應用程式是系統應用程式
  • 該應用程式唯一的用途是偵測可能有害的應用程式 (可能讓使用者、使用者資料或裝置暴露在風險中,例如木馬程式、網路釣魚和間諜軟體應用程式) 或行動垃圾軟體
  • 應用程式必須滿足 Android CDD 第 9.8.6. OS 層級和微光資料
  • 其不得宣告 android.permission.INTERNET 一般權限。而是必須透過開放原始碼專案中定義完善的 API 存取網際網路。
  • 不得繫結至應用程式,但下列系統應用程式除外:權限控制器,以及提供電話和網際網路 API 的元件。您必須透過系統設定中的 <allow-association> 設定明確設定每個允許的繫結。
  • 除非使用者有直接操作 (例如每次共用資料時明確按下按鈕),否則應用程式不得與應用程式分享資料。
SYSTEM_AUTOMOTIVE_calendar_SYNC_MANAGER 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 必須將日曆資料從使用者的 iOS 或 Android 手機轉移到 Android Auto 裝置。Android Auto 裝置必須將這項日曆資料儲存在日曆供應商中。
  • 應用程式必須在手機上提供 UI 元件,讓使用者用於開啟日曆同步功能,並選取要同步處理的日曆。應用程式必須在手機上提供 UI 元件,讓使用者能用於關閉日曆同步功能。
  • 應在沒有網際網路連線的情況下運作。例如使用直接有線或無線連線。
AUTOMOTIVE_NAVIGATION 下列所有權限:
  • 應用程式有一個活動,可讓應用程式透過隱含意圖要求叫用,顯示使用者的目前位置和周遭環境。
  • 應用程式有一個活動,應用程式可以透過隱含意圖要求叫用,讓使用者前往指定地理位置。
  • 應用程式擁有導覽焦點時,在儀表叢集上啟動的活動。活動必須顯示使用者目前的位置和周遭環境,並讓使用者導覽至指定的地理位置。
COMPANION_DEVICE_COMPUTER 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 讓使用者在已連結的電腦上將通知鏡像並存取手機中的相片和媒體。
SYSTEM_SETTINGS_INTELLIGENCE 至少須選取下列其中一項:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 針對「設定」應用程式提供智慧功能,例如建議和搜尋功能。
記事 下列所有權限:
COMPANION_DEVICE_GLASSES 應用程式可以使用 CompanionDeviceManager 類別提供的 API,發出相關聯的要求及管理眼鏡裝置。眼鏡裝置和應用程式透過 CDM 提供的 UI 連線後,使用者就能將眼鏡存取權授予眼鏡,並授予管理通知和通話的權限,藉此管理眼鏡裝置。
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING 下列所有權限:
  • 應用程式是系統應用程式
  • 只有原始設備製造商 (OEM) 才能為應用程式授予這個角色。
  • 應用程式可以建立及管理已連結裝置的通訊管道,以便裝置交換資料。應用程式和連結的裝置必須成功進行驗證 (例如證明裝置具備共用金鑰),才能建立這些通訊管道。通訊管道必須啟用加密防護功能。
  • 應用程式可以從本機裝置將通知傳送到已連結的裝置,讓使用者對已連結裝置上的通知採取行動。
  • 能夠將串流應用程式所需的中繼資料串流至已連結的裝置,例如本機裝置上可用的應用程式清單。
  • 在使用者明確表示同意 (使用手機或連結裝置) 執行此操作後,應用程式就能從本機裝置串流至已連結的裝置。
  • 能夠在本機裝置上重播 (插入) 串流應用程式發生的串流事件。例如,用與手機相同的座標,在平板電腦上重播觸控事件,或是重播眼鏡裝置上發生的輸入事件。
  • 當串流的應用程式使用麥克風時,應用程式可將本機裝置的麥克風串流,替換為已連結裝置的麥克風串流。
  • 應用程式從裝置擷取音訊,並將音訊串流至已連結的裝置。
  • 必須驗證已連結裝置 OS 版本的完整性 (例如,使用 VerifiedBootState 中的裝置認證)。
  • 在兩部裝置上,只在裝置端帳戶登錄中只有一個相符的帳戶 (例如 Android 上的「AccountManager」) 執行串流應用程式。如果情況不同,您必須透過來源裝置上顯示的一次性代碼授權串流,並在已連結的裝置上輸入該代碼。請注意,如果裝置支援多使用者 (而非多重帳戶) 功能,且支援相同的保證資料隔離功能 (例如 Android 多使用者),則只會計為一次裝置。
  • 如果連結裝置上的帳戶驗證過期或遭撤銷,必須立即停止串流及中斷連線裝置的連線。
  • 如果來源裝置使用螢幕鎖定知識因素 (LSKF),除非裝置設有螢幕鎖定且處於解鎖狀態,否則應用程式不得在螢幕鎖定時串流至已連結的裝置。
  • 如果裝置是由管理員管理,應用程式必須遵循管理員針對啟用或停用鄰近裝置的串流設定的政策 (例如使用 Android 中的 DevicePolicyManager 設定)。
  • 必須確保遠端顯示畫面和所有遠端輸入事件來源,從使用者的角度來看,兩者都屬於相同的邏輯裝置 (例如遠端螢幕和已連接的鍵盤),並據此轉送事件。
  • 使用者必須能夠從本機裝置結束串流,例如,在永久通知中使用按鈕。如果手機已設定螢幕鎖定,這項行為會受螢幕鎖定功能保護。
  • 在其他裝置進行串流時,必須在來源裝置上顯示預設用途,例如狀態列中的圖示或常駐通知。