iOS Core蓝牙扫描率

Posted

技术标签:

【中文标题】iOS Core蓝牙扫描率【英文标题】:iOS Corebluetooth scan rate 【发布时间】:2013-12-30 15:26:31 【问题描述】:

我有一个使用 corebluetooth 框架实现 BLE 中心的 ios 应用 该应用程序执行 ScanForPeripheralWithServices 以扫描正在广告的 BLE 外围设备 问题 - iOS 设备多久扫描一次 - 这是可编程的吗?

【问题讨论】:

【参考方案1】:

简单地说:它不可编程,

我在某处读到 iPhone(假设)一次 1.28 秒的扫描最多可以找到五个设备,但只有 ios 负责扫描时间(如果您没有提供特定设备作为参数或限制)

扫描作为广告服务的外围设备。

- (void)scanForPeripheralsWithServices:(NSArray *)serviceUUIDs 
                               options:(NSDictionary *)options

参数

serviceUUID

应用感兴趣的 CBUUID 对象数组。在此 在这种情况下,每个 CBUUID 对象代表一个服务的 UUID 外围设备正在做广告。

选项

一个可选的字典,指定自定义扫描的选项。为了 可用选项,请参阅“外围扫描选项”。

【讨论】:

“如果您不提供特定设备作为参数或限制”是什么意思? 好的 - 了解它不是可编程的 - Apple 是否指定它是什么。 我浏览过 Apple 文档,但我不知道它实际上是如何工作的,我想只有核心蓝牙团队知道它是如何工作的 :( 什么是扫描超时?我与 CB 合作多年,但从未见过这个词。扫描不会超时,您启动它,它就会运行。此外,对于扫描间隔 1.28 似乎是非常错误的,因为通常它的工作速度要快一个数量级。您可以添加对这条信息的引用吗?另外,扫描的背景和前景是不同的,所以这个问题也不是那么容易回答的。【参考方案2】:

您所能做的就是使用计时器并从中调用 scanForPeripheralsWithServices ,当您找到正确的设备时使计时器无效:)

【讨论】:

以上是关于iOS Core蓝牙扫描率的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上扫描蓝牙 2.1(旧版)设备

iOS蓝牙开发梳理:广播端和扫描端实现

iOS蓝牙开发梳理:广播端和扫描端实现

蓝牙设备连接时 iOS Core 蓝牙通知应用

Swift:为啥我的 iOS 不能扫描其他蓝牙设备

iOS Core 蓝牙串口