蓝牙

大象笔记 > 标签 > 蓝牙

BLE Indications 与 Notifications 的区别

BLE 的一个特性可能包含五种 property: Read Write Write No Response Notify Indicate Notify 和 Indicate 都是订阅蓝牙设备的推送消息。 但是 Indications 与 Notifications 有什么需求呢? indication (指示、标示) 需要客户端收到消息后,进行回应。类似 TCP。 notification (通知,通告,告示) 不需要客户端的回应。类似 UDP。例如,BLE 语音对讲服务基本都是用的 notification。 补充 由于 indication 需要应答,所以相对而言,效率会低一 ...

阅读全文...

Android API 无法获取蓝牙 BLE Attribute Handle 值

最近写了一个 Android APP 用于快速配置蓝牙网关(已上架 Google Play),但是基本功能完成后, 发现无法获取指定特性 (characteristic) / 描述符 (descriptor) 的 handle 值。 handle 存在的意义 Handle 的全称是 Attribute Handle。 在用 Android API 实现这个 BLE 扫描 APP 的过程中,我发现无论是服务,还是特性、描述符其 UUID 都是可能重复的。 举个例子,如果一个蓝牙设备包含两个电池模块,则存在两个相同服务的 UUID 是合理的。 那么用 UUID 来标识一个服务/特性/描述符就不合理 ...

阅读全文...

经典蓝牙接口规范 HFP HSP A2DP 的区别

Profile 可以理解为接口规范。 经典蓝牙 Profiles 包括 HFP, HSP, A2DP, AVRCP, PBAP, MAP 等。 HFP HFP 英文全称是 Hands-Free Profile。 定义了与 Hands-Free 设备通信的最小功能集。 Hands-Free 设备举例: 车载控制屏: 例如,在开车时使用中控屏连接手机拨打电话,整个通话过程就是基于 HFP。 头戴式耳机 补充: 音频通过同步的 SCO 通道传输 独立的数据通道用于控制音频流 音频延迟在 20 ~ 30 毫秒 支持的音频编码:CVSD,mSBC AT 指令可以用于控制手机 HSP HSP 的 ...

阅读全文...

Android 12 扫描蓝牙设备 Need android.permission.BLUETOOTH_SCAN permission

报错信息 在 Android 12 系统上真机执行 BLE 蓝牙设备扫描时,APP 直接崩溃,Logcat 中报错: java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@9e60bb10: GattService registerScanner ... at com.st.BlueSTSDK.Manager.startBleScan_post21(Manager.java:283) at com.st.BlueS ...

阅读全文...