Android Automotive OS 是專為車內使用情境最佳化的 Android 版本,以核心 Android 平台為基礎。內建 Google 服務的車輛搭載 Android Automotive OS,並內建 Google 應用程式和服務,包括 Google Play、Gemini、Google 助理和 Google 地圖。
車輛可以執行 Android Automotive OS,同時支援 Android Auto。瞭解 Android Automotive OS 硬體
如要進一步瞭解 Android Automotive OS 裝置的最低硬體規格,請參閱應用程式支援的 Android 版本,以及 Android 相容性定義說明文件 (CDD) 的「Automotive Requirements」一節。
螢幕凹口
與其他 Android 板型規格一樣,Android Automotive OS 裝置支援非矩形螢幕的螢幕凹口。不過,車輛的凹口大小和形狀可能與其他外型規格的凹口大不相同。如需詳細指引,請參閱「使用視窗插邊和螢幕凹口」。
音訊
Android Automotive OS 裝置通常是固定音量的裝置。如要進一步瞭解這項變更對應用程式的影響,請參閱「使用固定音量裝置」。
瞭解 Android Automotive OS 軟體
雖然 Android Automotive OS 與其他外型規格裝置使用相同的核心作業系統,但仍有一些專屬的額外功能,可能會影響應用程式的開發和使用方式。
系統 UI
車輛的系統 UI 元素運作方式與其他裝置略有不同,請務必留意。
導覽
Android Automotive OS 裝置不需要具備硬體或軟體返回功能,這點與其他板型規格不同。如果不是在相容模式下執行,應用程式實作的活動應包含 UI 功能提示,以便在應用程式內導覽,符合 AN-1 品質指南。
系統資訊列版面配置
與其他板型規格一樣,Android Automotive OS 包含系統資訊列,例如狀態列和導覽列。在車輛中,這些橫條的大小和位置可能與其他板型規格不同。舉例來說,導覽列可能位於螢幕左側、右側或底部。即使頂端有狀態列,底部有導覽列 (大多數手機和平板電腦都是如此),這些元素在車輛上的大小可能也會大得多。
此外,行動裝置上的螢幕凹口通常會包含在系統資訊列的界線內,但車輛並非如此。
如需詳細指引,請參閱「使用視窗插邊和螢幕凹口」。
沉浸模式
Android Automotive OS 可讓原始設備製造商控制應用程式是否可以顯示或隱藏系統資訊列,以進入和退出沉浸模式。原始設備製造商 (OEM) 可以選擇讓應用程式不隱藏系統資訊列,確保車輛控制項 (例如溫度控制項) 一律會顯示在螢幕上供隨時存取。
使用者體驗限制
使用者體驗 (UX) 限制是 Android Automotive OS 內建的功能,可處理駕駛人分心問題。使用者體驗限制會自動禁止使用未針對行車期間進行最佳化的應用程式。
車輛製造商會決定確切的規則組合,判斷使用者體驗限制的啟用方式和時間。這些規則可能因地區而異。舉例來說,在歐洲銷售的同一款車輛,可能適用與在美國銷售的車輛不同的規則。
車輛內螢幕的 UX 限制規則也可能有所不同。舉例來說,駕駛人視線範圍內的中央螢幕可能會在車輛行駛時受到限制,但乘客螢幕則不受限制。
如果應用程式需要配合 UX 限制進行調整,請直接參照這些限制,不要嘗試對實作方式進行逆向工程。舉例來說,如果您假設車輛未處於停車檔時,使用者體驗限制就會啟動,可能會不必要地限制在乘客螢幕上執行的應用程式。
分心因素排除功能
根據預設,UX 限制生效時,系統會禁止執行活動,以免駕駛分心。如要向系統指出活動應在車輛行駛時繼續執行,可以在對應的 <activity> 元素中加入下列 <meta-data> 元素。
<activity ...>
<meta-data android:name="distractionOptimized" android:value="true">
</activity>
開發 Android Automotive OS 應用程式時,只有在為使用 Car App Library 建構的應用程式CarAppActivity宣告 <activity> 資訊清單元素時,資訊清單中才應出現這項中繼資料。其他活動不應標示為已針對分心優化,否則應用程式提交至 Google Play 商店時會遭到拒絕。
無障礙設定
Android Automotive OS 的無障礙支援功能不如其他板型規格。Android Automotive OS 裝置不支援 TalkBack、切換控制功能和 Voice Access。
Android Automotive OS 裝置支援字幕偏好設定。如需整合詳細資料,請參閱「採用系統字幕設定」。
聯播網選項
Android Automotive OS 支援應用程式專屬網路選取 (PANS),OEM 可藉此根據應用程式將行動網路流量導向不同網路。
大多數應用程式只會使用指派給自己的預設網路,且只會從這項功能獲益。舉例來說,即使使用者沒有自己的數據方案,原始設備製造商 (OEM) 仍可能為您應用程式的網路流量付費。如果您的應用程式 (或其中一個依附元件) 依賴預設以外的網路,可能無法從 OEM 設定的偏好設定獲益。如要進一步瞭解如何使用預設網路以外的網路,請參閱「讀取網路狀態」。
系統功能
您可以使用 PackageManager::hasSystemFeature 偵測特定功能是否可用,並據此調整應用程式的行為。
硬體功能
與其他非行動裝置一樣,車輛提供的硬體功能可能與行動裝置不同。
螢幕方向
與電視一樣,車輛是固定螢幕顯示方向的裝置。與電視不同的是,螢幕可直向或橫向顯示。為確保專為 Android Automotive OS 建構的應用程式能發布至所有車輛,應用程式必須確保android.hardware.screen.landscape或android.hardware.screen.portrait功能沒有明確或隱含的功能需求。
網路位置
許多 Android Automotive OS 裝置並未實作用於提供網路位置的電話堆疊,因此不會回報 android.hardware.location.network 系統功能。雖然可能無法使用網路位置資訊,但系統仍支援存取大概位置資訊,詳情請參閱「Android Automotive OS 的大概位置資訊」。
軟體功能
Android Automotive OS 裝置可能不支援其他板型規格常見的部分軟體功能。舉例來說,許多 Android Automotive OS 車輛不支援下列功能:
符合 Google Play 功能規定
如要透過 Google Play 發布車用應用程式,針對 Android Automotive OS 建構的應用程式必須在 android.hardware.type.automotive 功能的 AndroidManifest.xml 檔案中加入 <uses-feature> 元素:
<manifest ...>
...
<!--
See Choose a track for Android Automotive OS
for details on how to choose which value to use for the android:required attribute.
-->
<uses-feature
android:name="android.hardware.type.automotive"
android:required="[true|false]">
...
</manifest>
此外,如果應用程式有任何明確功能聲明,且android:required="true"或隱含功能需求適用於下列功能,您必須更新或移除這些聲明/需求,確保應用程式的功能需求不會妨礙發布至其他相容車輛:
android.hardware.wifiandroid.hardware.screen.portraitandroid.hardware.screen.landscapeandroid.hardware.camera
如要處理以 android:required="true" 明確宣告的功能,您可以採取下列其中一種做法:
- 如果功能並非以其他方式隱含必要,請刪除
<uses-feature>元素。 - 使用
android:required="false"明確宣告該功能。
如為隱含必要功能,您可以採取下列任一做法:
- 使用
android:required="false"明確宣告該功能。 - 移除或更新資訊清單值,這些值會對功能造成隱含需求。
變更資訊清單中的功能聲明不會影響應用程式的實際運作,因此請確認應用程式在沒有這些功能的情況下仍可正常運作。
常見問題
哪些車輛內建 Google 服務?
如要查看內建 Google 服務的車款,請前往「內建 Google 服務的車輛」網站。如要取得硬體規格和其他裝置詳細資料,請使用 Play 管理中心的裝置目錄。