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 无法与许多服务和特性一起使用的主要内容,如果未能解决你的问题,请参考以下文章