Hướng dẫnĐăng ngày: 5 phút đọc

Lệnh ADB cho Android TV và Fire TV: phím remote, ứng dụng, nguồn

Lệnh ADB cho Android TV, Google TV và Fire TV. Phím điều hướng, phím media, gõ chữ, mở ứng dụng và link YouTube, màn hình cài đặt, ngủ, đánh thức, khởi động lại.

Các lệnh dưới đây dùng được trên Android TV, Google TV và Fire TV sau khi đã kết nối ADB. Nếu chưa kết nối, hãy bắt đầu với bài cách điều khiển Android TV bằng ADB. Mọi lệnh đều chạy từ máy tính. Trong ADBKit, bạn có thể dán phần phía sau adb shell vào bảng Shell.

Phím remote

adb shell input keyevent <PHÍM> bấm một nút. Dùng tên hoặc mã số đều được.

Nút trên remoteTên phímMã
Lên / XuốngKEYCODE_DPAD_UP / KEYCODE_DPAD_DOWN19 / 20
Trái / PhảiKEYCODE_DPAD_LEFT / KEYCODE_DPAD_RIGHT21 / 22
OK (chọn)KEYCODE_DPAD_CENTER23
Quay lạiKEYCODE_BACK4
Màn hình chínhKEYCODE_HOME3
MenuKEYCODE_MENU82
Tìm kiếm / Trợ lýKEYCODE_SEARCH84
Cài đặtKEYCODE_SETTINGS176
Nguồn vào (Input)KEYCODE_TV_INPUT178
Lịch phát sóngKEYCODE_GUIDE172
Kênh lên / xuốngKEYCODE_CHANNEL_UP / KEYCODE_CHANNEL_DOWN166 / 167

Gộp nhiều lần bấm vào một lệnh sẽ nhanh hơn chạy từng lệnh riêng, vì mỗi lần gọi adb shell đều tốn thời gian khởi động:

adb shell input keyevent KEYCODE_DPAD_DOWN KEYCODE_DPAD_DOWN KEYCODE_DPAD_CENTER

Muốn giữ nút, ví dụ để mở menu ngữ cảnh, dùng --longpress:

adb shell input keyevent --longpress KEYCODE_DPAD_CENTER

Âm lượng và media

Thao tácTên phímMã
Tăng / giảm âm lượngKEYCODE_VOLUME_UP / KEYCODE_VOLUME_DOWN24 / 25
Tắt tiếngKEYCODE_VOLUME_MUTE164
Phát / tạm dừngKEYCODE_MEDIA_PLAY_PAUSE85
DừngKEYCODE_MEDIA_STOP86
Bài tiếp / bài trướcKEYCODE_MEDIA_NEXT / KEYCODE_MEDIA_PREVIOUS87 / 88
Tua lại / tua nhanhKEYCODE_MEDIA_REWIND / KEYCODE_MEDIA_FAST_FORWARD89 / 90
Phụ đềKEYCODE_CAPTIONS175

Lệnh âm lượng chỉnh loa tivi hay loa soundbar đang cắm còn tùy mẫu máy và cài đặt HDMI-CEC.

Gõ chữ

Bàn phím ảo trên tivi gõ bằng remote rất chậm. Chọn ô nhập trước, rồi chạy:

adb shell input text "breaking%sbad"

%s là dấu cách. Các ký tự như &, ( và ' phải thoát (escape) cho shell, và input text chỉ gõ được ASCII thường, không gõ được tiếng Việt có dấu. Trong ADBKit bạn có thể gõ thẳng bằng bàn phím máy tính, kể cả chữ có dấu. Chi tiết hơn ở bài mẹo input keyevent và text.

Mở ứng dụng

Liệt kê các ứng dụng bạn tự cài:

adb shell pm list packages -3

Mở ứng dụng theo tên gói. Ứng dụng tivi đăng ký mục khởi chạy "Leanback", nên hãy chỉ định đúng loại đó:

adb shell monkey -p com.google.android.youtube.tv -c android.intent.category.LEANBACK_LAUNCHER 1

Một vài gói phổ biến trên tivi:

Ứng dụngTên gói
YouTube cho TVcom.google.android.youtube.tv
Netflix (Android TV)com.netflix.ninja
Cửa hàng Google Playcom.android.vending
Cài đặt Android TVcom.android.tv.settings

Tên gói có thể khác tùy khu vực và thiết bị, nên nếu không mở được thì kiểm tra lại bằng pm list packages. Trên Fire TV, các ứng dụng của Amazon dùng tên com.amazon.*.

Đóng hẳn một ứng dụng:

adb shell am force-stop com.netflix.ninja
adb shell am start -a android.intent.action.VIEW -d "https://www.youtube.com/watch?v=VIDEO_ID"

Nếu tivi có YouTube cho TV thì video sẽ mở ra. Intent VIEW này dùng được cho các link khác, miễn là trên tivi có ứng dụng xử lý được. Nhiều tivi không có trình duyệt web đầy đủ, nên link trang web có thể không mở được gì.

Màn hình cài đặt

adb shell am start -a android.settings.SETTINGS
adb shell am start -a android.settings.WIFI_SETTINGS
adb shell am start -a android.settings.APPLICATION_DEVELOPMENT_SETTINGS

Không phải tivi nào cũng có đủ các màn hình này. Lỗi kiểu "Activity not started, unable to resolve Intent" nghĩa là mẫu máy này không có màn hình đó.

Ngủ, đánh thức, khởi động lại

Thao tácLệnh
Bật/tắt nguồn (như nút nguồn trên remote)adb shell input keyevent KEYCODE_POWER
Cho tivi ngủadb shell input keyevent KEYCODE_SLEEP
Đánh thứcadb shell input keyevent KEYCODE_WAKEUP
Màn hình đang bật hay tắt?adb shell dumpsys power, rồi tìm dòng mWakefulness
Khởi động lạiadb reboot

Trong script nên dùng KEYCODE_SLEEP và KEYCODE_WAKEUP thay vì KEYCODE_POWER, vì hai phím này lần nào cũng cho cùng một kết quả chứ không bật tắt luân phiên. Một số tivi ngắt mạng khi ngủ sâu, lúc đó ADB không đánh thức được nữa.

Thông tin thiết bị

adb shell getprop ro.product.model
adb shell getprop ro.build.version.release
adb shell getprop ro.product.cpu.abilist
adb shell wm size
adb shell df -h /data

ro.product.cpu.abilist rất quan trọng khi cài ứng dụng. Nhiều tivi chạy hệ điều hành 32-bit dù chip là 64-bit, đó là lý do một số APK không cài được. Xem bài cài APK lên Android TV và Fire TV.

Chụp màn hình

adb exec-out screencap -p > tv.png

Video có bản quyền sẽ đen trong ảnh chụp và video quay màn hình. Đó là chuyện bình thường, không phải lỗi.

Tắt ứng dụng cài sẵn (cẩn thận)

Bạn có thể ẩn ứng dụng cài sẵn không bao giờ dùng mà không cần gỡ:

adb shell pm disable-user --user 0 com.example.unwanted
adb shell pm enable com.example.unwanted

Dòng thứ hai hoàn tác dòng thứ nhất. Đừng tắt launcher, giao diện hệ thống, dịch vụ thiết lập hay cập nhật. Tivi bị tắt màn hình chính có thể rất khó cứu nếu không khôi phục cài đặt gốc.

Các lệnh tương tự cho điện thoại có trong bảng lệnh ADB.