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 remote | Tên phím | Mã |
|---|---|---|
| Lên / Xuống | KEYCODE_DPAD_UP / KEYCODE_DPAD_DOWN | 19 / 20 |
| Trái / Phải | KEYCODE_DPAD_LEFT / KEYCODE_DPAD_RIGHT | 21 / 22 |
| OK (chọn) | KEYCODE_DPAD_CENTER | 23 |
| Quay lại | KEYCODE_BACK | 4 |
| Màn hình chính | KEYCODE_HOME | 3 |
| Menu | KEYCODE_MENU | 82 |
| Tìm kiếm / Trợ lý | KEYCODE_SEARCH | 84 |
| Cài đặt | KEYCODE_SETTINGS | 176 |
| Nguồn vào (Input) | KEYCODE_TV_INPUT | 178 |
| Lịch phát sóng | KEYCODE_GUIDE | 172 |
| Kênh lên / xuống | KEYCODE_CHANNEL_UP / KEYCODE_CHANNEL_DOWN | 166 / 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_CENTERMuố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ác | Tên phím | Mã |
|---|---|---|
| Tăng / giảm âm lượng | KEYCODE_VOLUME_UP / KEYCODE_VOLUME_DOWN | 24 / 25 |
| Tắt tiếng | KEYCODE_VOLUME_MUTE | 164 |
| Phát / tạm dừng | KEYCODE_MEDIA_PLAY_PAUSE | 85 |
| Dừng | KEYCODE_MEDIA_STOP | 86 |
| Bài tiếp / bài trước | KEYCODE_MEDIA_NEXT / KEYCODE_MEDIA_PREVIOUS | 87 / 88 |
| Tua lại / tua nhanh | KEYCODE_MEDIA_REWIND / KEYCODE_MEDIA_FAST_FORWARD | 89 / 90 |
| Phụ đề | KEYCODE_CAPTIONS | 175 |
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 -3Mở ứ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 1Một vài gói phổ biến trên tivi:
| Ứng dụng | Tên gói |
|---|---|
| YouTube cho TV | com.google.android.youtube.tv |
| Netflix (Android TV) | com.netflix.ninja |
| Cửa hàng Google Play | com.android.vending |
| Cài đặt Android TV | com.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.ninjaMở video YouTube hoặc một đường link
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_SETTINGSKhô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ác | Lệ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ức | adb 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ại | adb 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 /dataro.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.pngVideo 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.unwantedDò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.