C#

OppoPodsManager

Desktop controller for OPPO earphones

Z

Zhaoyi-ya

Dernière activité 28 sept. 2026
Zhaoyi-ya/OppoPodsManager

257

étoiles

11

forks

6

issues ouvertes

Ce README est souvent en anglais.

OPPO Pods Manager (Windows / Linux)

中文 | English

📦 项目已归档:本仓库自 2026-09-30 起停止开发与维护,现有代码保持原样归档,供大家自行查阅。 原因与后续安排见 项目归档说明。


在桌面端管理你的蓝牙耳机——查看电量、切换降噪、调音、管理多设备连接,无需打开手机 App。

已适配 6 个品牌:OPPO / OnePlus / realme(135 款官方型号表)、vivo / iQOO(43 款官方型号表)、 华为 FreeBuds、小米 / Redmi、漫步者、Apple AirPods。能力按型号自动识别,界面只显示你的耳机真正支持的功能。


目录


功能

电量与佩戴

  • 多路电量:左耳 / 右耳 / 充电盒分别显示,带充电状态 ⚡;单电池设备自动切换为单栏布局
  • 佩戴检测:入盒 / 佩戴 / 摘下 实时显示
  • 状态实时同步:所有开关与模式持续从耳机回读真实状态,重启应用后自动还原,界面与耳机始终一致

降噪控制

  • 动态降噪模式:按型号显示实际支持的主模式(关闭 / 降噪 / 通透 / 自适应)
  • 降噪子档位:智能 / 深度 / 中度 / 轻度,按型号自动列出可选项
  • 智能切换实时档位:选择"智能"模式时,显示设备实时计算出的当前档位(如"实时计算:深度"),与官方 App 表现一致

音效

  • 大师调音 EQ:按型号加载可用预设,一键切换;支持自定义 EQ 的型号提供频段调节
  • 空间音效:开关式空间声场
  • 空间音频三模式:关闭 / 固定 / 头部追踪(支持的型号);连接后自动读取耳机当前所选模式并同步勾选,重启也能正确还原
  • 游戏音效:游戏场景专属音效开关(支持的型号),状态实时回读
  • 音效互斥:游戏音效与空间音效互斥——开启其一会自动关闭另一个,与官方 App 行为一致

其他控制

  • 游戏模式:低延迟模式开关,按耳机能力自动适配新版与旧版协议
  • 双设备连接:开关双设备同时连接
  • 多设备管理:查看当前已连接的设备列表,一键切换活动设备
  • 设备信息:固件版本、音频编解码器显示
  • 查找耳机:让耳机发出提示音(支持的型号)

通知弹窗

  • 连接提示:耳机连接 / 断开时右下角弹出状态卡片,半透明、带滑入动画
  • 低电量提醒:低电量(≤20%)与极低电量(≤10%)分级提醒
  • 独立开关:低电量提醒、连接弹窗可分别关闭;弹窗时长可调(3–8 秒)

桌面体验

  • 系统托盘常驻:左键点击开关主窗口,右键弹出功能菜单,鼠标悬浮显示实时电量
  • 关闭到托盘:关闭窗口时最小化到托盘而非退出(可在设置开启)
  • 开机自启:随系统启动自动运行(可在设置开启)
  • 断连自动重连:耳机断开后自动尝试重新连接
  • 主题:跟随系统深浅色,也可手动切换深色 / 浅色
  • 界面自定义:自定义背景图(含模糊强度)、卡片透明度、语言(简体中文 / English / Deutsch / Русский,或跟随系统)
  • 窗口毛玻璃(Windows):可选的 Acrylic 模糊窗口效果

支持的品牌与设备

品牌 型号识别 支持程度
OPPO · OnePlus · realme 135 款官方型号表 大部分:电量 / 降噪 / 音效 / 空间音频 / 双设备 / 查找耳机
vivo · iQOO 43 款官方型号表 大部分:电量 / 降噪 / 音效 / 空间音频 / 双设备
华为 FreeBuds 按型号能力表 大部分:电量 / 降噪 / 双设备等,按型号显示
小米 · Redmi — 初步:电量读取(控制功能待适配)
漫步者 — 初步:基础信息读取
Apple AirPods — 初步:基础信息读取(控制通道桌面端未实现)

各型号支持的功能不同(是否有降噪子档位、空间音频、双设备、大师调音等),程序会按型号自动显示可用功能, 不支持的功能不会出现在界面上。若自动识别不准,可在 设置 → 设备型号 里搜索并手动指定。

本项目为社区逆向实现,不保证对每款设备都完美适配或功能可用。


系统要求

  • Windows:Windows 10 版本 2004(内部版本 19041)及以上,64 位(x64 / arm64)
  • Linux:x64,需 BlueZ(通过 D-Bus 通信)
  • 硬件:蓝牙适配器 + 已配对的耳机
  • 依赖:使用自包含(NativeAOT)发布版下载即用,无需安装 .NET;若使用框架依赖版,需安装 .NET Runtime 10.0

安装使用

  1. 从 Releases 下载最新版本
  2. 解压到任意目录
  3. 先在系统蓝牙设置里完成耳机配对(这一步很重要,程序不负责配对)
  4. 双击运行,程序会自动发现并连接已配对的耳机

连接成功后,主界面即显示电量与各项控制。程序会记住你的设置(主题、语言、弹窗偏好、型号覆盖、托盘/自启等)。


界面说明

主界面自上而下:

区域 说明
设备列表(左侧栏) 已连接的多台设备,点开可查看并切换活动设备
电量卡片 标题为当前耳机名称(左侧圆点表示连接状态:绿=已连接 / 红=未连接),行末为多设备切换下拉、刷新与重连按钮;下方为各路电量、充电状态与佩戴状态
降噪控制 主模式选择器 + 子档位(按型号动态生成),智能模式下显示实时档位
空间音频 三模式单选(支持的型号才显示),自动同步耳机当前所选模式
功能 空间音效、游戏模式、游戏音效、双设备开关 + 大师调音 EQ 下拉(均按型号显示,状态实时回读)

设置页:本机设备信息(名称 / 固件 / 编解码器)、连接策略(自动选择、优先设备)、 关闭到托盘、开机自启、获取更新、查看日志、反馈、关于。


设置说明

个性化页:

分类 可调项
外观 语言(自动 / 中文 / English / Deutsch / Русский)、主题(跟随系统 / 深色 / 浅色)、卡片透明度
弹窗设置 低电量提醒开关、连接弹窗开关、弹窗时长(3–8 秒)
背景 自定义背景图(缩略图切换、添加新背景)、背景模糊强度
自定义耳机图案 为主界面 / 小卡片 / 左耳 / 右耳 / 充电盒分别指定图片,可恢复默认
设备 自定义设备名称
高级设置(Beta) 高级渲染、窗口毛玻璃(仅 Windows,切换后自动重载窗口生效)

网络连接

本软件不发起任何网络请求:不做版本检测,不查询更新服务器。

  • 不会上传任何数据:不收集、不上传你的设备信息、耳机数据、使用习惯或任何个人隐私。
  • 设置页的「获取更新」只是调用系统默认浏览器打开 GitHub Releases 页面(请求由浏览器发起,程序自身不联网),不会在后台比对版本号。
  • 不内置任何统计、追踪或遥测代码。

程序可完全离线运行,所有本地功能不受影响。


常见问题

Q:程序找不到我的耳机? 先确认耳机已在系统「蓝牙」设置里完成配对并处于连接状态。程序只连接已配对的设备,不负责配对流程。

Q:连接上了但某些功能没显示? 界面按型号能力动态显示——你的耳机不支持的功能(如没有空间音频、没有降噪子档位)不会出现。若确认型号识别错误,去设置里手动选对型号。

Q:显示的型号不对 / 功能不全? 在 设置 → 设备型号 里用搜索框找到你的准确型号手动指定即可。

Q:我的品牌只显示电量,没有降噪和音效控制? 说明该品牌的协议适配还在进行中(见支持的品牌与设备)。电量与佩戴等只读信息不受影响。

Q:降噪档位名称和官方 App 不一样? 降噪档位命名(智能 / 深度 / 中度 / 轻度)与官方一致;"智能"模式会随环境实时切换档位,界面会显示当前实时计算出的档位。

Q:为什么开了游戏音效,空间音效就自动关了(反之亦然)? 这是设计如此。游戏音效与空间音效在耳机上互斥,同一时间只能生效一个——开启其中一个时,程序会自动关闭另一个并下发到耳机,与官方 App 表现一致。

Q:开关状态和耳机实际不一致 / 重启后还原错误? 程序会持续从耳机回读真实状态(空间音频模式、游戏音效、游戏模式、双设备等),重启应用后按耳机当前状态自动还原。若短时间内看到状态跳动,是回读与你的操作在同步,稍等即可稳定。

Q:不想要连接时的弹窗 / 低电量提醒? 个性化 → 弹窗设置里可以分别关闭,也能调整弹窗停留时长。

Q:关闭窗口后程序还在运行? 若开启了"关闭到托盘",关闭窗口只是最小化到系统托盘,右键托盘图标可退出。

Q:Linux 上能用吗? 可以。Linux 走 BlueZ(D-Bus)通道,功能范围与 Windows 一致;窗口毛玻璃效果仅 Windows 支持。


从源码构建

需要 .NET SDK 10.0 及以上。

git clone https://github.com/Zhaoyi-ya/OppoPodsManager.git
cd OppoPodsManager

# 调试构建(Windows 侧后端由 RID 或构建参数决定)
dotnet build -c Debug

# 发布(NativeAOT 自包含单文件,无需目标机安装 .NET)
dotnet publish -c Release -r win-x64      # Windows x64
dotnet publish -c Release -r linux-x64    # Linux x64

后端实现按平台自动切换:Windows 使用 WinRT 蓝牙 API(net10.0-windows10.0.19041.0), Linux 使用 BlueZ D-Bus(net10.0 + Tmds.DBus)。同一份代码库通过 MSBuild 条件编译选择,无需手动改代码。


维护


字体声明

本软件界面内嵌并使用 MiSans 字体。MiSans 由小米提供,版权及授权信息以小米官方说明和 MiSans 字体知识产权许可协议为准:

根据 MiSans 官方说明,本项目在软件中特别注明使用了 MiSans 字体并且未对 MiSans 字体文件或其组件进行改编、二次开发、单独分发或售卖。


致谢

各品牌适配过程中实际参考的开源项目与协议来源,请参阅 ACKNOWLEDGEMENTS.md。


开源协议

GPL-3.0-or-later(见 LICENSE)

Projets similaires

☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP)

C++airpodsbatterybluetooth
SSpriteOvO
3,5 k étoiles210

Unofficial Galaxy Buds Manager for Windows, macOS, Linux, and Android

C#bluetoothbuds-livebuds-plus
Ttimschneeb
5,3 k étoiles314

AirPods liberated from Apple's ecosystem.

Kotlinaccessiblityairpodsandroid
Llibrepods-org
30,1 k étoiles1,8 k