203 lines
3.7 KiB
Markdown
203 lines
3.7 KiB
Markdown
# 蓝牙主界面开发进展_2026-07-09
|
|||
|
|
|
||
|
|
## 范围
|
||
|
|
|
||
|
|
本次只专注新项目 `F:\zdCode\tongli` 的 `YX_BlueTooth` 蓝牙模块。
|
||
|
|
|
||
|
|
不处理:
|
||
|
|
|
||
|
|
- SystemUI
|
||
|
|
- Launcher
|
||
|
|
- MCU
|
||
|
|
- 其他系统联动模块
|
||
|
|
|
||
|
|
## 用户要求
|
||
|
|
|
||
|
|
- UI 和需求要跟老项目 `F:\zdCode\tongli_old` 一致。
|
||
|
|
- 业务逻辑一样。
|
||
|
|
- 代码可以不参考老项目。
|
||
|
|
- 不需要备份。
|
||
|
|
- 资源优先直接拷贝老项目,不从截图切图。
|
||
|
|
|
||
|
|
## 本次完成
|
||
|
|
|
||
|
|
主界面已从新项目原来的:
|
||
|
|
|
||
|
|
```text
|
||
|
|
键盘 + 通话记录/联系人横向页签
|
||
|
|
```
|
||
|
|
|
||
|
|
调整为老项目式:
|
||
|
|
|
||
|
|
```text
|
||
|
|
左侧四菜单 + 右侧页面容器
|
||
|
|
```
|
||
|
|
|
||
|
|
四个菜单:
|
||
|
|
|
||
|
|
```text
|
||
|
|
蓝牙拨号
|
||
|
|
联系人
|
||
|
|
蓝牙音乐
|
||
|
|
蓝牙设置
|
||
|
|
```
|
||
|
|
|
||
|
|
## 代码结构
|
||
|
|
|
||
|
|
主入口:
|
||
|
|
|
||
|
|
```text
|
||
|
|
YX_BlueTooth/src/main/java/com/yaxon/bluetooth/main/MainActivity.java
|
||
|
|
```
|
||
|
|
|
||
|
|
主界面现在只负责:
|
||
|
|
|
||
|
|
- 左侧菜单显示
|
||
|
|
- 右侧 Fragment 切换
|
||
|
|
- 联系人搜索/重新同步入口
|
||
|
|
- 蓝牙连接状态同步给拨号页和联系人页
|
||
|
|
|
||
|
|
新增页面:
|
||
|
|
|
||
|
|
```text
|
||
|
|
YX_BlueTooth/src/main/java/com/yaxon/bluetooth/fragment/DialHomeFragment.java
|
||
|
|
YX_BlueTooth/src/main/java/com/yaxon/bluetooth/fragment/BtMusicFragment.java
|
||
|
|
YX_BlueTooth/src/main/java/com/yaxon/bluetooth/fragment/BtSettingFragment.java
|
||
|
|
```
|
||
|
|
|
||
|
|
复用页面:
|
||
|
|
|
||
|
|
```text
|
||
|
|
YX_BlueTooth/src/main/java/com/yaxon/bluetooth/fragment/ContactsFragment.java
|
||
|
|
YX_BlueTooth/src/main/java/com/yaxon/bluetooth/fragment/CallLogsFragment.java
|
||
|
|
```
|
||
|
|
|
||
|
|
## 页面说明
|
||
|
|
|
||
|
|
### 蓝牙拨号
|
||
|
|
|
||
|
|
文件:
|
||
|
|
|
||
|
|
```text
|
||
|
|
fragment_dial_home.xml
|
||
|
|
DialHomeFragment.java
|
||
|
|
```
|
||
|
|
|
||
|
|
结构:
|
||
|
|
|
||
|
|
```text
|
||
|
|
左侧:KeyBoardView
|
||
|
|
右侧:CallLogsFragment
|
||
|
|
输入号码后:显示联系人匹配列表
|
||
|
|
```
|
||
|
|
|
||
|
|
### 联系人
|
||
|
|
|
||
|
|
继续复用:
|
||
|
|
|
||
|
|
```text
|
||
|
|
ContactsFragment
|
||
|
|
fragment_contacts.xml
|
||
|
|
```
|
||
|
|
|
||
|
|
主界面右上角保留:
|
||
|
|
|
||
|
|
- 搜索
|
||
|
|
- 重新同步
|
||
|
|
|
||
|
|
### 蓝牙音乐
|
||
|
|
|
||
|
|
新增:
|
||
|
|
|
||
|
|
```text
|
||
|
|
BtMusicFragment
|
||
|
|
fragment_bt_music.xml
|
||
|
|
```
|
||
|
|
|
||
|
|
复用:
|
||
|
|
|
||
|
|
```text
|
||
|
|
BtMusicViewModel
|
||
|
|
BtMusicControlManager
|
||
|
|
```
|
||
|
|
|
||
|
|
### 蓝牙设置
|
||
|
|
|
||
|
|
新增:
|
||
|
|
|
||
|
|
```text
|
||
|
|
BtSettingFragment
|
||
|
|
fragment_bt_setting.xml
|
||
|
|
```
|
||
|
|
|
||
|
|
复用:
|
||
|
|
|
||
|
|
```text
|
||
|
|
BtSettingViewModel
|
||
|
|
BtDevForumAdapter
|
||
|
|
BtDevScanedAdapter
|
||
|
|
```
|
||
|
|
|
||
|
|
它相当于把原来的 `BtSettingDialog` 弹窗式设置迁成主界面里的页面式设置。
|
||
|
|
|
||
|
|
## 资源复用
|
||
|
|
|
||
|
|
已从老项目拷贝到新项目:
|
||
|
|
|
||
|
|
```text
|
||
|
|
activity_bg.png
|
||
|
|
common_bg_line.png
|
||
|
|
title_head_background.png
|
||
|
|
bluetooth_tabvertical.xml
|
||
|
|
text_click_selector.xml
|
||
|
|
icon_tabvertical_selected.png
|
||
|
|
```
|
||
|
|
|
||
|
|
新增/修改资源:
|
||
|
|
|
||
|
|
```text
|
||
|
|
activity_main.xml
|
||
|
|
listitem_main.xml
|
||
|
|
fragment_dial_home.xml
|
||
|
|
fragment_bt_music.xml
|
||
|
|
fragment_bt_setting.xml
|
||
|
|
colors.xml
|
||
|
|
dimens.xml
|
||
|
|
```
|
||
|
|
|
||
|
|
## 验证
|
||
|
|
|
||
|
|
默认 Java 11 会失败,原因是当前 Android Gradle Plugin 需要 Java 17。
|
||
|
|
|
||
|
|
使用 Android Studio JBR 临时编译:
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
$env:JAVA_HOME='C:\Program Files\Android\Android Studio\jbr'
|
||
|
|
$env:Path="$env:JAVA_HOME\bin;$env:Path"
|
||
|
|
.\gradlew.bat :YX_BlueTooth:assembleDebug --no-daemon --console=plain
|
||
|
|
```
|
||
|
|
|
||
|
|
结果:
|
||
|
|
|
||
|
|
```text
|
||
|
|
BUILD SUCCESSFUL
|
||
|
|
```
|
||
|
|
|
||
|
|
## 已知风险
|
||
|
|
|
||
|
|
- 当前完成的是主界面四入口骨架,尚未做上车/模拟器视觉验收。
|
||
|
|
- 蓝牙拨号页的号码显示、删除键、点击通话记录拨号等细节需要继续对齐老项目。
|
||
|
|
- 蓝牙设置页目前复用现有设置逻辑,名称修改、自动接听等细节还需要继续核对老项目。
|
||
|
|
- 蓝牙音乐页复用现有音乐逻辑,播放状态、歌曲信息、未连接页还需要实测。
|
||
|
|
- 三方通话还未进入本轮实现,后续需要专项验收。
|
||
|
|
|
||
|
|
## 下一步
|
||
|
|
|
||
|
|
优先顺序:
|
||
|
|
|
||
|
|
1. 实测主界面四入口切换。
|
||
|
|
2. 对齐蓝牙拨号页 UI 和交互。
|
||
|
|
3. 对齐联系人页搜索/同步/空状态。
|
||
|
|
4. 对齐蓝牙音乐页播放控制和未连接状态。
|
||
|
|
5. 对齐蓝牙设置页扫描/连接/断开/删除/蓝牙名称。
|
||
|
|
6. 再做通话页和三方通话专项。
|