iOS 上的蓝牙 LE 无法与许多服务和特性一起使用

Posted

技术标签:

【中文标题】iOS 上的蓝牙 LE 无法与许多服务和特性一起使用【英文标题】:Bluetooth LE on iOS cannot work with many services and characteristics 【发布时间】:2014-07-24 05:31:53 【问题描述】:

我开发了一个 BLE 应用程序,在我的 iPhone 应用程序中使用 Core Bluetooth。 我的 iPhone 与启动 bleno 的 linux 通信。 问题是它不能与一个以上的特性或服务一起工作,尽管只有一个特性可以很好地工作。 这是我的 ios 代码和 Node.js 的 .js 代码:

http://pastebin.com/k5pUrbLt http://pastebin.com/biCWLmJ3

谢谢!

附:这就是我在控制台中得到的:

2014-07-24 13:18:02.819 lexy[142:60b] didDiscoverPeripheral 2014-07-24 13:18:04.503 lexy[142:60b] didDiscoverServices 2014-07-24 13:18:04.506 lexy[142:60b] D61191C0-FCE8-4F5A-912C-15EE39D927B4

即我成功发现并连接到外围设备,但我没有发现任何特征。在这种情况下,我有一项具有许多特征的服务。

【问题讨论】:

请更新您的问题以指明您收到的具体问题或错误消息。请参阅***.com/help/how-to-ask,了解如何提出好问题的建议 感谢您的评论,我已经更新了我的问题。 您是否尝试过 App Store 中的浅蓝色应用,以验证您的外围设备是否按预期投放广告 是的,我在 Mac 和 iPad 上都试过了。在我的 Mac 上,它可以看到所有服务和特性,但 iPad 上的 Light Blue 无法连接到外围设备。我的 linux 上的 GATTT 正确地看到了所有特征。 android 上的 nRF Master 可以看到一切。 确保您在 iPad 上运行 ios 7.1 并尝试重新启动它 【参考方案1】:

iOS 可以在远程设备上使用多种特性和多种服务。

您的 ObjC 代码似乎没问题(1 个服务具有 2 个特征)。

控制台输出建议您发送一个 discoverCharacteristics 请求,但它挂起并且永远不会返回。您可以将日志记录添加到 didDisconnectPeripheral 委托方法以查看是否发生断开连接。

您还可以查看蓝牙堆栈的日志,并将它们与访问 TI 传感器标签时的日志进行比较(这些标签是 BLE 的 hello world)。

iOS 7.1 的蓝牙日志说明位于here,对于 iOS 8,您必须诉诸 Apple 的官方方式来获取日志(安装配置文件),但它们的日志包含的信息少于 BluetoothCompanion 的信息.

【讨论】:

【参考方案2】:

显然,它适用于 Ubuntu 14.04,但不适用于 OpenSuse 13.1。

【讨论】:

以上是关于iOS 上的蓝牙 LE 无法与许多服务和特性一起使用的主要内容,如果未能解决你的问题,请参考以下文章

蓝牙 LE iOS 无法在后台扫描

iOS 蓝牙 LE 无法以编程方式获取通知,但可以在其他应用程序中

Android蓝牙LE:连接后未发现服务

Android 蓝牙 LE - 读取浮动特性

iOS刷新蓝牙特性

iOS 中的蓝牙 LE 和 ANCS