Android 前台服务配置问题导致蓝牙对讲功能异常

💡 原文中文,约4800字,阅读约需12分钟。
📝

内容提要

使用 STM32 WB 蓝牙模块的开源 SDK 实现蓝牙对讲功能时,因与 Android 12 的兼容性问题无法建立连接,修改 Manifest 文件和 PendingIntent 后,功能调通。

🎯

关键要点

  • 使用 STM32 WB 蓝牙模块的开源 SDK 实现蓝牙对讲功能时无法建立连接。
  • 官方 APP ST BLE Sensor 可以正常连接,问题出在前台服务与 Android 12 的兼容性上。
  • 连接异常状态为 'Lost connection with the node BVL-WB1'。
  • 蓝牙模块的状态包括 Init, Idle, Connecting, Connected, Disconnecting, Lost, Unreachable, Dead。
  • 建立连接的过程涉及 NodeConnectionService 的 connect 方法。
  • Manifest 文件需要增加前台服务的配置以支持 Android 9 及以上版本。
  • PendingIntent 创建时需要指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE。
  • 经过修改后,功能最终调通,学习了 Service 和 Foreground Service 的使用。
➡️

继续阅读