当我尝试将 Android 4.4.2 智能手机与连接到 ArchLinux 操作系统(在 VirtualBox 上运行)的 BLE 加密狗配对时,我遇到了问题。
到目前为止我做了什么:
编写一个 Android 应用程序(GATT 服务器,中心角色)...
- 扫描附近的设备
- 让用户从找到的设备中选择一个
- 通过调用打开 Gatt 服务器
BluetoothManager.openGattServer(context, gattServerCallback);
- 最后通过调用连接到所选设备
BluetoothGattServer.connect(device, false);
要配置 BLE 加密狗(GATT 客户端,外围角色),我使用的是 BlueZ 5。具体而言,我在终端上输入以下命令:
systemctl start bluetooth
hciconfig hci0 up
hciconfig hci0 leadv
不知何故,配对失败。以下是 LogCat 的一些片段:
01-29 15:49:24.747: D/BluetoothGattServer(12976): connect() - device: XX:XX:XX:XX:XX:XX, auto: false
01-29 15:49:24.747: D/BtGatt.GattService(2148): serverConnect() - address=XX:XX:XX:XX:XX:XX
01-29 15:49:29.903: D/BtGatt.GattService(2148): onConnected() connId=5, address=XX:XX:XX:XX:XX:XX, connected=false
01-29 15:49:29.903: D/BluetoothGattServer(12976): onServerConnectionState() - status=0 serverIf=5 device=XX:XX:XX:XX:XX:XX
稍后当我希望获得超过 10 个声望时,我会添加 LogCat 日志的图片;-)
知道配对失败的原因吗?
提前致谢!