我正在尝试连接到Raspberry Pi 2上的BLE设备(心率传感器,Polar H7)。我使用的是上一版本的bluez(5.35):http://www.bluez.org/download/
但是当我尝试使用public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
进行连接时,我总是遇到“连接拒绝”错误。
以下是我的工作:
gatttool
我尝试过关注此主题:BLE gatttool cannot connect even though device is discoverable with hcitool lescan 但它对我不起作用。
答案 0 :(得分:20)
通过使用Bluetooth
参数将Raspberry
设置为Android
,我能够通过LE address type
从random
连接到-t random
设备,即:
sudo gatttool -t random -b DD:9D:0B:43:A1:77 -I
connect
来自gatttool
man
--t, ---addr-type=[public | random]
# Set LE address type. Default: public
USAGE gatttool [OPTION...]
Help Options:
-h, --help Show help options
-h, --help Show help options
--help-all Show all help options
--help-gatt Show all GATT commands
--help-params Show all Primary Services/Characteristics
arguments
--help-char-read-write Show all Characteristics Value/Descriptor
Read/Write arguments
Application Options:
--i, ---adapter=hciX Specify local adapter interface
--b, ---device=MAC Specify remote Bluetooth address
--t, ---addr-type=[public | random] Set LE address type. Default: public
--m, ---mtu=MTU Specify the MTU size
--p, ---psm=PSM Specify the PSM for GATT/ATT over BR/EDR
--l, ---sec-level=[low | medium | high] Set security level. Default: low
--I, ---interactive Use interactive mode
答案 1 :(得分:2)
默认情况下,GATT未启用。将以下行添加到/etc/bluetooth/main.conf
EnableLE = true // Enable Low Energy support. Default is false.
AttributeServer = true // Enable the GATT attribute server. Default is false.
答案 2 :(得分:1)
通过apt-get更新/安装BlueZ,修复了运行raspbian buster的raspberry pi 3B中的连接被拒绝(111)问题
> sudo apt-get install --no-install-recommends bluetooth
然后重新运行
> sudo gatttool -t random -b E9:1C:89:B7:16:F9 -I
答案 3 :(得分:0)
我必须在pnat
- >中停用插件/etc/bluetooth/main.conf
DisablePlugins=pnat
。我读到它不稳定,但我对这个插件了解不多。
答案 4 :(得分:0)
如果你仍然想知道为什么随机工作。我已经完成了代码,这就是我找到的。
-t (Addr:Type: Set LE Address Type) Public | random Default: Public
随机或静态地址是48位随机生成的地址,应满足以下要求 要求:
•静态地址的两个最高有效位应等于'1'
•静态地址的随机部分的所有位不应等于'1'
•静态地址的随机部分的所有位不应等于'0'
(Source)
答案 5 :(得分:0)
我让它运行:
btmgmt le on
答案 6 :(得分:-1)
您可以尝试使用gatttool -b 00:22:D0:6D:E0:E6 -I
,然后在发现MAC之后立即连接,而不是先连接hcitool lecc 00:22:D0:6D:E0:E6