Android16 蓝牙打开时,状态栏显示蓝牙图标
2026-06-27 / 龙之叶
说明
本修改主要针对 Android 16(API 36)AOSP 源码中的 SystemUI 模块。
| 项目 | 内容 |
|---|---|
| 适用版本 | Android 16(API 36) |
| 涉及模块 | frameworks/base/packages/SystemUI |
| 修改类 | PhoneStatusBarPolicy |
| 修改方法 | updateBluetooth() |
在 Android 16 原生 SystemUI 中,PhoneStatusBarPolicy.updateBluetooth() 默认仅在蓝牙已连接且满足音频 Profile 条件时才显示状态栏图标。用户仅打开蓝牙开关、尚未连接设备时,状态栏不会出现蓝牙图标,与快捷设置中蓝牙已开启的状态不一致。
本次修改在 Android 16 上实现:
- 蓝牙开启即显示
stat_sys_data_bluetooth图标(新增资源) - 蓝牙已连接时切换为
stat_sys_data_bluetooth_connected图标 - 蓝牙关闭时隐藏图标
若移植到其他 Android 版本,需确认对应分支中
PhoneStatusBarPolicy.java路径及updateBluetooth()实现是否一致,资源命名是否相同。
修改文件
1 | frameworks/base/packages/SystemUI/res/drawable/stat_sys_data_bluetooth.xml (新增) |
1. 新增 stat_sys_data_bluetooth.xml
路径: frameworks/base/packages/SystemUI/res/drawable/stat_sys_data_bluetooth.xml

1 | <!-- |
2. 修改 PhoneStatusBarPolicy.java
路径: frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
方法: updateBluetooth()
修改前
1 | private final void updateBluetooth() { |
修改后
1 | private final void updateBluetooth() { |
修改点
1 | private final void updateBluetooth() { |
附图


本文链接:
http://longzhiye.top/2026/06/27/2026-06-27/