iOS - iOS 设备和外部附件(蓝牙 watch )之间 BLE 数据传输的 MTU 大小

标签 ios bluetooth bluetooth-lowenergy core-bluetooth data-transfer

我正在为使用 BLE(CoreBluetooth)的蓝牙 watch 开发 iOS 应用程序(Objective-C),我的 watch 有 GATT 蓝牙配置文件,iOS 应用程序最低支持来自 iOS7。

我想知道我们如何使用 Core Bluetooth 框架在 iOS 设备和外部设备之间进行数据传输。

实际上我正在研究我的蓝牙 watch 的固件升级部分, 每当收到任何更新时,我的 iOS 应用程序将从网络服务获取固件代码(二进制数据),然后将数据发送到蓝牙 watch 。

我已经搜索并获得了一个 Apple 示例代码: BTLE_Transfer:https://developer.apple.com/Library/ios/samplecode/BTLE_Transfer/Introduction/Intro.html

我想示例代码在我的案例中没有用,因为它具有中央和外围代码以及在两个 iOS 设备之间传输数据。

除了这个BLE数据传输示例代码,还有其他方法吗?或者只有这个示例代码才有可能?(如果是的话如何?)

更新:

我的设备有 1 个服务,具有 2 个特性,一个用于读取,一个用于写入。

根据我使用写入特性的工作流程:

  1. 我使用 WRITECHARACTERISTIC 以 block 的形式发送固件代码数据

[MYDEVICEINSTANCE writeValue:NSDATACHUNK forCharacteristic:WRITECHARACTERISTIC type:CBCharacteristicWriteWithResponse];

  1. 在委托(delegate)方法“didWriteValueForCharacteristic”方法中,我通知读取特征如下

[MYDEVICEINSTANCE setNotifyValue:TRUE forCharacteristic:READCHARACTERISTIC];

  1. 在内部调用“didUpdateNotificationStateForCharacteristic”委托(delegate)方法,我正在检查是否 READCHARACTERISTIC isNotifying 然后我调用
[MYDEVICEINSTANCE readValueForCharacteristic:READCHARACTERISTIC];
  1. 调用委托(delegate)方法“didUpdateValueForCharacteristic”,我正在使用 READCHARACTERISTIC.value 读取响应

我的查询:

我想确认 Apple 允许的 MTU 最大限制 用于来自 iOS 应用程序的外部设备通信,我在第 1 步开始时将 NSDATACHUNK 发送到 BLE Watch从 iOS 应用程序使用 writeValue

我已经测试过我可以发送 MTU=255 大小的 NSDATACHUNK 并且 BLE watch 正在成功接收。

我在“Apple 示例代码:BTLE_Transfer”中发现他们正在使用 MTU=20 但是,我猜该示例代码用于 iOS 设备到 iOS 设备的通信(如果我错了,请纠正我)

那么,如果我在我的 iOS 应用程序中使用 MTU=250 进行 BLE 通信,苹果是否有可能拒绝我的应用程序?

或者有没有人可以说Apple 允许的最大 MTU 限制是多少?

感谢每一个建议,

提前致谢

最佳答案

您可以使用任何您想要的 MTU 大小(最多 512)。

连接将使用的值始终是您和他们之间的最小值。

因此,例如,如果他们想要使用等于 50 的 MTU,那么如果您的 MTU 低于 50,则将使用该值;否则,无论您选择高于 50 的哪个值都没有意义,因为会选择 50。

关于iOS - iOS 设备和外部附件(蓝牙 watch )之间 BLE 数据传输的 MTU 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26712694/

相关文章:

iphone - iOS 中的安全警告 :"Please treat the URL above as you would your password and do not share it with anyone.

android - 是否可以创建一个应用程序,安装后用户可以通过双击主页按钮轻松打开和关闭蓝牙/NFC?

java - 无需用户输入密码即可以编程方式配对蓝牙设备

ios - 低功耗蓝牙应用架构

ios - 无法在我的 iOS 应用程序中检测到 Kontakt.io 信标

ios - 使用 url-scheme 从 iOS 中的浏览器在 Adob​​e Reader 中打开 pdf

ios - AVPlayerLooper,AVComposition 与 AVMutableAudioMixInputParameters : volume is instable between loops

ios - SwiftUI:NavigationView 内的动画

Lollipop 上的android蓝牙路由

android - 蓝牙 LE 设备发现服务