# 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                    # 一键构建脚本
└── ...
```

## 构建步骤

```bash
# 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

```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 | 显示版本 |

## 开发与调试

1. **ADB 连接 TV**
   ```bash
   adb connect <TV_IP>:5555
   adb install app-debug.apk
   ```

2. **查看日志**
   ```bash
   adb logcat -s IPTV:D
   ```

3. **远程调试**
   ```bash
   adb shell am start -a android.intent.action.VIEW -d "http://<dev_server>:5173"
   ```
