外围设备未连接到 iOS

Posted

技术标签:

【中文标题】外围设备未连接到 iOS【英文标题】:Peripheral not connecting to iOS 【发布时间】:2016-02-02 07:31:33 【问题描述】:

我正在尝试将 bluez 外围设备连接到 ios 设备;它不工作。

请在外围设备端找到以下日志。我正在使用hciconfig hci0 leadv 做广告,但我在手机上的扫描仪应用程序上看不到任何“连接”选项。 bluez-4.101 也没有 hciconfig hci0 leadv0 选项来使其可连接。

使用同一个设备作为 Central,我可以与其他 BLE 设备建立 LE 连接,从而确认内核 LE 支持和设备正常,我认为只有一些 bluez 问题存在。

> HCI Event: LE Meta Event (0x3e) plen 19
    LE Connection Complete
      status 0x00 handle 1025, role slave
      bdaddr 67:5D:F6:87:3D:2C (Random)
> ACL data: handle 1025 flags 0x02 dlen 7
    ATT: MTU req (0x02)
      client rx mtu 158
 > ACL data: handle 1025 flags 0x02 dlen 27
 > ACL data: handle 1025 flags 0x01 dlen 27
 > ACL data: handle 1025 flags 0x01 dlen 9
    L2CAP(d): cid 0x003a len 59 [psm 0]
      0000: .9......com.appl
      0010: e.BT.TS."....com
      0020: .apple.BTLEServe
      0030:                 r.classic..
> ACL data: handle 1025 flags 0x02 dlen 11
    L2CAP(d): cid 0x003a len 7 [psm 0]
      0000:                              ......
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 1025 reason 0x13
    Reason: Remote User Terminated Connection

我怎样才能让这个外围设备连接?

【问题讨论】:

bluez-4.101 高度过时了,几乎可以肯定是所有问题的原因。 【参考方案1】:

升级到latest BlueZ version 将解决 GATT 相关问题。

引用链接页面:

BlueZ 开发人员已弃用 2.x、3.x 和 4.x 系列库和包,不再支持。如果您正在使用它们,请更新到 5.x 系列。下载链接仅供参考。

【讨论】:

感谢 Zimano 的回复,但我使用的是内核 2.6.37,根据 bluez.org Bluez-5.x 仅支持 kernel-3.5.x 及以上版本。 有什么方法可以在我的内核 2.6.37 中使用 bluez-5.x 吗? 我明白,但我认为这是不可能的。您通常需要升级内核。 :( 感谢 Zimano,还有很多其他接口依赖,我怀疑我是否可以升级内核。 嗨 Zimano,我在内核 3.13 上尝试了 bluez 5.30,发现与 iOS Central/peripheral 的连接问题没有改善。我仍然得到远程用户终止连接?您现在可以建议吗?

以上是关于外围设备未连接到 iOS的主要内容,如果未能解决你的问题,请参考以下文章

Android 8.1 连接到调用 connectGatt 的 BLE 外围设备。回调总是说断开连接。从不连接

Flutter 应用程序:IOS 模拟器未连接到 Android Studio

来自 2 个 BLE 设备的 ios 通知

未连接到 xcode 调试模式时,iOS7 后台获取 performFetchWithCompletionHandler 在设备上不起作用

同一设备上的多个 ios 应用程序可以连接到同一个外围设备吗?

React-Native 物理设备未连接到服务器