- 添加 TV 专用的 Leanback 主题和配置 - 支持遥控器 D-Pad 导航 - 添加 AssetReader JS 接口 - 强制横屏显示 - 处理遥控器按键(返回、菜单、信息)
Android TV WebView 壳
为 Android TV 设备(包括智能电视、电视盒子等)提供的 WebView 套壳应用。
特性
- ✅ Leanback 支持 - 专为 TV 优化的主题和启动器
- ✅ D-Pad 导航 - 遥控器方向键支持,自动注入 JS 导航
- ✅ 全屏沉浸 - 无状态栏/导航栏,纯全屏体验
- ✅ 横屏锁定 - 强制横屏显示
- ✅ 按键处理 - 支持返回、菜单、信息键等遥控器按键
目录结构
android-tv/
├── app/src/main/
│ ├── java/com/iptv/tv/
│ │ └── MainActivity.java # TV 主活动(含 D-Pad 支持)
│ ├── res/
│ │ ├── layout/activity_main.xml
│ │ ├── values/
│ │ │ ├── strings.xml
│ │ │ ├── styles.xml # Leanback 主题
│ │ │ └── colors.xml
│ │ └── drawable/
│ │ └── ic_banner.xml # TV 启动器横幅
│ ├── assets/
│ │ └── www/ # 打包的 Web 资源
│ └── AndroidManifest.xml # TV 特定配置
├── build.sh # 一键构建脚本
└── ...
构建步骤
# 1. 构建 Web UI
cd ../ui
npm install
npm run build
# 2. 构建 Android TV APK
cd ../android-tv
./build.sh
APK 输出: app/build/outputs/apk/debug/app-debug.apk
TV 特定配置
AndroidManifest.xml
<!-- TV 必需特性 -->
<uses-feature android:name="android.software.leanback" android:required="true" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<!-- TV 启动器 -->
<intent-filter>
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
D-Pad 导航支持
应用自动注入 JavaScript 代码,使 Web 应用支持遥控器方向键导航:
- 方向键 - 在可聚焦元素间移动
- 确认键 - 点击当前聚焦元素
- 返回键 - 页面后退/退出应用
- 菜单键 - 刷新页面
- 信息键 - 显示版本信息
遥控器按键映射
| 按键 | 功能 |
|---|---|
| 上/下/左/右 | 导航焦点 |
| 确认/OK | 点击 |
| 返回 | 页面后退 |
| 菜单 | 刷新页面 |
| 信息/INFO | 显示版本 |
开发与调试
-
ADB 连接 TV
adb connect <TV_IP>:5555 adb install app-debug.apk -
查看日志
adb logcat -s IPTV:D -
远程调试
adb shell am start -a android.intent.action.VIEW -d "http://<dev_server>:5173"