BLE连接失败:由于BD_ADDR不可接受,连接被拒绝



我的设置如下:

  1. BLE外设在树莓派3
  2. 安卓手机中的nRF工具
  3. 我的应用程序在同一部安卓手机中(使用react native ble manager(

当我使用nRF工具连接到Raspberry Pi时,它连接成功。但是,当我使用自己的Android应用程序连接时,它会失败。

在Raspberry Pi中,我运行sudo btmon命令来检查故障日志,如下所示:

> HCI Event: Connect Request (0x04) plen 10                                                                                                  [hci0] 143.774717
Address: 88:A3:03:E7:18:EA (OUI 88-A3-03)
Class: 0x5a020c
Major class: Phone (cellular, cordless, payphone, modem)
Minor class: Smart phone
Networking (LAN, Ad hoc)
Capturing (Scanner, Microphone)
Object Transfer (v-Inbox, v-Folder)
Telephony (Cordless telephony, Modem, Headset)
Link type: ACL (0x01)
< HCI Command: Reject Connection Request (0x01|0x000a) plen 7                                                                                [hci0] 143.774802
Address: 88:A3:03:E7:18:EA (OUI 88-A3-03)
Reason: Connection Rejected due to Unacceptable BD_ADDR (0x0f)
> HCI Event: Command Status (0x0f) plen 4                                                                                                    [hci0] 143.775814
Reject Connection Request (0x01|0x000a) ncmd 1
Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                                                                                                 [hci0] 143.897643
Status: Connection Rejected due to Unacceptable BD_ADDR (0x0f)
Handle: 0
Address: 88:A3:03:E7:18:EA (OUI 88-A3-03)
Link type: ACL (0x01)
Encryption: Disabled (0x00)

日志中显示的错误是由BD_ADDR引起的。使用nRF工具时,bd_addr为

Peer address type: Random (0x01)
Peer address: 58:B2:55:17:1A:92 (Resolvable)

有些奇怪的事情我无法理解:一旦我使用nRF工具连接到Raspberry Pi,然后尝试从我的应用程序连接到Ras树莓派,它就会连接。

我该如何解决这个问题?

您的事件日志显示您正在使用Bluetooth Classic进行连接。如果要使用BLE,请使用connectGatt变体,在该变体中可以选择LE作为传输参数。

最新更新