我有一个应用程序,它将作为BLE中心(扫描外围设备),在iOS 8及更高版本上运行 . 此外,我还有一个定制附件作为外围设备(宣传具有自定义特征的自定义服务) .

我打算以突发方式发送大约20KB的数据,每小时在中央和外围设备之间来回传输大约10次 .

天真的方法似乎在外围有两个特点:

  • 阅读并通知

当外围设备想要向中央发送数据时,它将发送第一个特征的通知,然后中央将请求第一个特征的值 .

当中心想要将数据发送到外设时,它只会写入第二个特性 .

看起来,特征指示是没有用的,我也可以在不等待响应的情况下编写(外设会让我知道错误并要求重新发送数据) .

但我不确定我是不是错过了什么 .

Are there any better ways to stream ~20KB data through BLE as fast as possible?

Are there any show-stoppers why this approach would not work at all in CoreBluetooth acting as a central?

没有处理MTU和特征尺寸 - 我为那些创建了另一个SO问题;为了这个问题,只要假设它们尽可能大 .