Flutter开发IOS蓝牙APP的大坑

Core Bluetooth 框架限制:iOS 的 Core Bluetooth 框架存在限制,如果指定的特征配置同时允许通知(Notifications)和指示(Indications),调用相关方法设置通知值时,默认仅会开启通知功能,而不会开启指示功能。这意味着即使蓝牙服务通过 Indications 发送数据,由于 iOS 端没有正确开启对 Indications 的支持,导致无法接收。

也就是说,如果你的项目是要连接一个蓝牙设备,并且你需要使用的蓝牙特征同时支持:通知(Notifications)和指示(Indications)时就会出问题。

目前我测试情况如下:

1、特征只有Notifications,ios可以接收数据

2、特征只有Indications,ios可以接收数据

3、特征同时支持 Notifications 和 Indications,并通过Indications发送数据,无法接收数据

4、iOS 的 Core Bluetooth 框架存在限制,如果指定的特征配置同时允许通知(Notifications)和指示(Indications),调用相关方法设置通知值时,默认仅会开启通知功能。 尝试强制启用Indications,官方框架限制不提供设置的接口

复制代码
官方设置订阅Notifications 和 Indications统一使用characteristic.setNotifyValue(true);
不提供指定其中一种的单独订阅方法

5、尝试强制将特征属性设置为仅有Indications,官方框架限制并报错

CoreBluetooth 框架不允许直接修改客户端特征配置描述符(CCCD,UUID 0x2902)的值​ ​。iOS 强制要求必须使用 setNotifyValue(_:for:) 方法来管理特征的通知/指示订阅,而不能直接操作 CCCD 描述符。

相关推荐
2501_916008892 小时前
手机抓包app大全:无需root的安卓抓包软件列表
android·ios·智能手机·小程序·uni-app·iphone·webview
消失的旧时光-19432 小时前
Flutter 与 React/Vue 为什么思想一致?——声明式 UI 体系的深度对比(超清晰版)
vue.js·flutter·react.js
rainboy6 小时前
Flutter :自己动手,封装一个小巧精致的气泡弹窗库
前端·flutter·github
旧时光_7 小时前
第4章:布局类组件 —— 4.5 流式布局(Wrap、Flow)
flutter
胖虎17 小时前
iOS 如何全局修改项目字体
ios·hook·ios字体·字体适配·ios字体适配
程序员老刘8 小时前
Flutter 3.38 版本更新:客户端开发者需要关注这三点?
flutter·客户端
songgeb8 小时前
iOS App进入后台时会发生什么
ios
笑尘pyrotechnic9 小时前
运行,暂停,检查:探索如何使用LLDB进行有效调试
ios·objective-c·lldb
AskHarries10 小时前
RevenueCat 接入 Google Play 订阅全流程详解(2025 最新)
android·flutter·google
metaRTC10 小时前
webRTC IPC客户端React Native版编程指南
react native·react.js·ios·webrtc·p2p·ipc