我正在为使用 BLE(CoreBluetooth)的蓝牙手表开发 iOS 应用程序(Objective-C),并且我的手表具有 GATT 蓝牙配置文件,iOS 应用程序最低支持来自 iOS7。
我想知道如何使用 Core Bluetooth 框架在 iOS 设备和外部设备之间进行数据传输。
实际上我正在研究我的蓝牙手表的固件升级部分,
每当收到任何更新时,我的 iOS 应用程序都会从网络服务获取固件代码(二进制数据),然后它将数据发送到蓝牙手表。
我搜索并得到了一个Apple示例代码:
BTLE_传输:https://developer.apple.com/Library/ios/samplecode/BTLE_Transfer/Introduction/Intro.html https://developer.apple.com/Library/ios/samplecode/BTLE_Transfer/Introduction/Intro.html
我想示例代码在我的情况下没有用,因为它具有中央和外围代码并在两个 iOS 设备之间传输数据。
除了这个 BLE 数据传输示例代码之外,还有其他方法吗?或者仅使用此示例代码就可以?(如果可以,怎么办?)
UPDATED:
我的设备有 1 个服务,其中有 2 个特征,一个用于读取,一个用于写入。
根据我使用写入特性的工作流程:
- 使用 WRITECHARACTERISTIC 我正在以块的形式发送固件代码的数据
[MYDEVICEINSTANCE writeValue:NSDATACHUNK
对于特性:WRITECHARACTERISTIC
类型:CBCharacteristicWriteWithResponse];
- 并在委托方法中“didWriteValueForCharacteristic“我通知读取特征的方法如下
[MYDEVICEINSTANCE setNotifyValue:TRUE
forCharacteristic:READCHARACTERISTIC];
- 这称为“didUpdateNotificationStateForCharacteristic“我正在检查里面的委托方法是否为 READCHARACTERISTIC正在通知或者不然后我打电话
[MYDEVICEINSTANCE readValueForCharacteristic:READCHARACTERISTIC];
- 哪个调用委托方法“didUpdateValueFor 特征“我正在使用以下方式阅读回复READCHARACTERISTIC.value
我的查询:
我想确认Apple 允许的 MTU 最大限制对于来自 iOS 应用程序的外部设备通信,我在步骤 1 中通过发送开始NS数据块从 iOS 应用程序使用 BLE Watch写值
我已经测试过我可以发送 NSDATACHUNKMTU=255尺寸和 BLE 手表接收成功相同。
我在“苹果示例代码:BTLE_Transfer“他们正在使用MTU=20但是,我猜示例代码用于 iOS 设备到 iOS 设备的通信(如果我错了,请纠正我)
所以,如果我使用MTU=250在我的 BLE 通信 iOS 应用程序中,苹果是否有可能拒绝我的应用程序?
或者有谁可以说Apple 允许的 MTU 最大限制是多少?
每一个建议都值得赞赏,
提前致谢