【发布时间】:2014-12-30 00:25:47
【问题描述】:
我正在为使用 BLE(CoreBluetooth)的蓝牙手表开发 iOS 应用程序(Objective-C),并且我的手表具有 GATT 蓝牙配置文件,iOS 应用程序最低支持来自 iOS7。
我想知道如何使用 Core Bluetooth 框架在 iOS 设备和外部设备之间进行数据传输。
实际上,我正在开发蓝牙手表的固件升级部分, 每当收到任何更新时,我的 iOS 应用程序都会从 Web 服务获取固件代码(二进制数据),然后它将数据发送到蓝牙手表。
我已经搜索并获得了一个 Apple 示例代码: BTLE_Transfer:https://developer.apple.com/Library/ios/samplecode/BTLE_Transfer/Introduction/Intro.html
我猜示例代码在我的情况下没有用,因为它同时具有 Central 和 Peripheral 代码并在两个 iOS 设备之间传输数据。
除了这个 BLE 数据传输示例代码之外,还有其他方法吗?或者仅使用此示例代码有可能?(如果是的话如何?)
更新:
我的设备有 1 个服务,其中有 2 个特性,一个用于读取,一个用于写入。
根据我使用写特性的工作流程:
- 使用 WRITECHARACTERISTIC 我正在分块发送固件代码数据
[MYDEVICEINSTANCE 写入值:NSDATACHUNK forCharacteristic:WRITECHARACTERISTIC 类型:CBCharacteristicWriteWithResponse];
- 在委托方法“didWriteValueForCharacteristic”方法中,我通知读取特征如下
[MYDEVICEINSTANCE setNotifyValue:TRUE forCharacteristic:READCHARACTERISTIC];
- 在里面调用“didUpdateNotificationStateForCharacteristic”委托方法,我正在检查是否 READCHARACTERISTIC isNotifying 然后我调用
[MYDEVICEINSTANCE readValueForCharacteristic:READCHARACTERISTIC];
- 调用委托方法“didUpdateValueForCharacteristic”,我正在使用 READCHARACTERISTIC.value 读取响应
我的查询:
我想确认 Apple 允许的 MTU 最大限制,用于从 iOS 应用程序进行外部设备通信,我从第 1 步开始,将 NSDATACHUNK 发送到 BLE Watch从 iOS 应用使用 writeValue
我已经测试过我可以发送 MTU=255 大小的 NSDATACHUNK 并且 BLE 手表可以成功接收。
我在“Apple Sample code: BTLE_Transfer”中发现他们正在使用 MTU=20 但是,我猜该示例代码是用于 iOS 设备到 iOS 设备的通信(如果我错了,请纠正我)
那么,如果我在 iOS 应用程序中使用 MTU=250 进行 BLE 通信,苹果是否有可能拒绝我的应用程序?
或者有没有人可以说Apple 允许的 MTU 最大限制是多少?
感谢您的每一个建议,
提前致谢
【问题讨论】:
-
如何在 iOS 中设置 MTU 大小?
标签: ios bluetooth bluetooth-lowenergy core-bluetooth data-transfer