Android Auto 開放導航和停車等等類型的APP Api Beta支援了

JLin
14 min readOct 19, 2020

--

有在關注的應該都知道,之前Google Auto是只能支援音樂還有電台類型之類的功能而已,不開放停車或者導航等等的功能的,今天認真地找了一下發現,Google偷偷的拋出了Beta 版本的說明文件

官方Blog

https://android-developers.googleblog.com/2020/10/introducing-android-for-cars-app-library.html

官方文件

關於DHU Testing

而現在版本的DHU也支援了多螢幕的功能,圖片來自於blog

似乎只要加入

dependencies {
implementation 'com.google.android.libraries.car:car-app:1.0.0-beta.1'
}

然後定義上Service Define + Intent filter

<application>
...
<service
...
android:name=".MyCarAppService"
android:exported="true">
<intent-filter>
<action android:name="com.google.android.car.action.CAR_APP"/>
<action android:category="com.google.android.car.category.PARKING"/>
</intent-filter>
</service>

...
<application>

可以看到有Parking (如果你要開發一個尋找停車位的功能),Navigation(導航軟體) 等等,com.google.android.car.category.CHARGING(找充電站)

而注意他最低支援就是sdk23(也就是Android 6.0)

其他的部分個人也還沒實際測試過,等實作後再補上詳細的實作心得.

官方推薦需要知道的UI Guideline

https://developer.android.com/training/cars/Android%20for%20Cars%20App%20Library%20design%20guidelines.pdf

目前要跑sample發現一些問題,

  1. 可以到github下載他的sample
  2. https://github.com/android/car-samples/tree/master/Auto/car_app_library

但目前跑他的模擬環境,發現Android Auto都會無法啟動

Android Auto — Desktop Head Unit
Build: 2020–09–20–332761970
Version: 2.0-windows-beta
[W]: No configuration specified — using default values.
[E]: Could not load configuration from ‘C:\Users\name\.android\headunit.ini’.
BoringSSL is the SSL implementation used in the receiver-lib.
Starting link. Requested protocol version: 1.6 (snapshot 314970161)
[I]: Connecting over ADB to localhost:5277…
[E]: failed.
[E]: Remember to start the “Head Unit Server” and run:
adb forward tcp:5277 tcp:5277
[E]: Failed to start Google Automotive Link.

不知道是不是這個問題

[E]: Could not load configuration from ‘C:\Users\name\.android\headunit.ini’.

或是會顯示正在移動車輛,會在停止時候才能進行設定

10/20 找到奇妙的解決方法

因為看到hdu.exe 有參數,本來只是玩玩看,沒想到只要先執行(h 是 無UI的模式)

desktop-head-unit.exe -h

然後再結束,重新執行一次

desktop-head-unit.exe

就可以正常使用了!!

執行模擬器可以執行的一些指令

desktop-head-unit.exe 中輸入 help

可以看到一些指令,quit / exit / dpad 0 / keycode endcall等等

一些其他問題的討論串

有提到是否是硬體的煞車模式沒關閉

更新

今天又重新測試了一次,突然就正常了

應該會看到這樣比較詳細的資訊

裝了sample的導航功能可以看到

會有一個demo的畫面

在車機上進行搜尋的時候,他會提示你用手機的鍵盤輸入

multi-touch

Hello World Sample

show case

Loading demo

Navigation Demo

Arrive Demo

Junction Image Demo

Route Preview

Place List Demo

Navigation Template with map only Demo

notification demo

Content provider icon demo

Color Text

Pane Template Demo

Message Template Demo

Search Template Demo

Pre-seed the Screen backstack on next run Demo

Go-to-phone Demo

Rows with Text and Icons Demo

以上就是所有Demo的畫面.

如何測式裝置

Android Auto可以透過下載模擬顯示器的方式,在電腦上執行,可以參考官網

比較特別要提到的是,目前無法在實體硬體上執行自己開發的APP,除了兩個方法

  1. 透過Google Play進行內部發布,這不需要審核就可以透過這樣的方式在實體裝置上執行
  2. 透過正常的release流程,經過Google審核後就可以在上面執行(費話) XD

目前聽起來是不能直接手機接著進行實體機器的開發

如何測式不同的模器裝置外觀行為

可以透過載入不同config.ini的方式去讓模擬器長的不同

./desktop-head-unit -c /path/to/config.ini

而sdk內也預設有幾個config ini的檔案可以使用

rotary.ini 

是只能透過車上的可旋轉式的控制鈕來控制

all_720p.in 

就是會有所有的功能

值得一提的是,其實auto會有多螢幕或者額外的hud模式螢幕,

又稱為 instrumentcluster or navcluster or phonecluster,會讓主畫面外還有額外的資訊可以顯示.

Widget

這邊有提到一些widget的顯示,但卻沒說怎麼進行開發?

Notification

Widget placement on wide screen

輸入方式

而輸入方式有三種

  1. 電容式螢幕
  2. 電阻式螢幕
  3. 迴轉式控制項

Custom-Apps

Simple-layou

官方的導航設計Guideline pdf

https://developer.android.com/training/cars/Android%20for%20Cars%20App%20Library%20design%20guidelines.pdf

補充

有趣的是,在這之前似乎有人從Waze中抽出使用的sdk,然後上架到github變成sdk,不過被google要求將sdk下架了,可以看到有人成功的將youtube放進android auto中,但最後sdk是被下架的。

--

--

JLin
JLin

Written by JLin

台中 / JAVA / Android /Kotlin / Kotlin Native 對於Kotlin衍生的JVM等技術 Compose for web / desktop / Ktor Server,生成式AI (Gemini/OpenAI)各式應用, 都有小興趣

No responses yet