:::

用Home Assistant操控Android TV / Use Home Assistant to Control Android TV with ADB Commands

2023-0328-152335.png

Home Assistant內建了可以透過ADB操控Android TV的做法,這也可以用來操控Chromecast with Google TV。這邊就記錄一下我常用的ADB指令。


ADB指令 / ADB commands

2023-0328-144413.png

Home Assistant要執行ADB操控的地方在「執行服務」裡面。先選擇「Android TV: ADB command」,再選擇要操控的裝置,然後就可以在下面Command欄位設定指令。

常用的指令有:

回到首頁 (感謝Ken Fehling):

am start -a android.intent.action.MAIN -c android.intent.category.HOME

開啟指定的應用程式及其activity (這個例子是電視版的巴哈姆特動畫瘋):

adb shell am start -n tw.com.gamer.android.animad/tw.com.gamer.android.animad.tv.ui.TVAnimadActivity

https://www.reddit.com/r/homeassistant/comments/kidma5/comment/ghlqdp4/?utm_source=share&utm_medium=web2x&context=3 

以下是開啟YouTube Kid的做法:

adb shell am start -a android.intent.action.VIEW -d -n com.google.android.youtube.tvkids/com.google.android.apps.youtube.tvkids.activity.MainActivity

https://stackoverflow.com/a/13212310 

如果想要查詢現在畫面的應用程式名字以及activity名字,請用其他電腦連上Android TV的ADB,然後執行以下指令來查詢:

adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'

https://stackoverflow.com/a/3512723 

開啟網頁:

adb shell am start -a android.intent.action.VIEW -d https://blog.pulipuli.info

雖然可以顯示,但要操作的話就比較麻煩了。

關閉微光模式

https://www.ptt.cc/bbs/Google/M.1642944467.A.C7F.html 

如果Android TV變成待機的微光模式,那上面的ADB指令就不會運作。根據myelf541的建議,可以在開發者設定裡面設定永不休眠。目前運作起來還算順利。

開啟YouTube影片 / Play YouTube Video

https://www.home-assistant.io/integrations/cast/ 

2023-0328-151434.png

如果要讓Android TV開啟YouTube影片的話,似乎不能單純用ADB操控。另一個思路是用Android TV內建的Chromecast功能,用投放的方式開啟YouTube影片。

以下是Home Assistant裡面設定開啟公共電視直播頻道 (此影片的ID是4Uc00FPs27M,可以從網址得知)的做法:

  • Action: Call a Service
  • service: media_extractor.play_media
  • 選擇設備Google TV
  • Content ID: {"app_name": "youtube", "media_id": "4Uc00FPs27M"}
  • Content type: cast

這樣就可以了。


最後就讓我們來問個問題:你家有智慧電視嗎?你通常用智慧電視拿來做什麼呢?

歡迎在下面分享你的看法喔~

總共1 則留言 ( 我要發問 , 隱藏留言 顯示留言 )

  1. 如果要用adb開啟網頁的話,請先為Android TV安裝瀏覽器。
    裝完之後就能用adb執行開啟網頁的指令了。

    回覆刪除