Android蓝牙Gatt服务器/客户端同时连接的问题

use*_*494 5 android bluetooth bluetooth-lowenergy gatt

我正在创建一个可以同时充当gatt连接的客户端和服务器的应用程序,但是每次运行服务器时,我都会获得一个未知状态和断开连接的状态,同时它表现为客户端.

这是现在的过程:

1)启动一部电话作为服务器(Phone1)

2)启动另一部手机作为客户端(Phone2)

3)将Phone2连接到Phone1并接收有关当前时间的通知更新.

4)在Phone2上启动服务器gatt服务器,这是我获得蓝牙gatt回调的未知状态的地方.首先它断开Phone2与Phone1的连接(打破gatt连接),然后Phone2的onConnectionStateChange为BluetoothGattCallBack返回断开状态和状态码19.

我不确定是什么导致这个,但两款手机都是相同的摩托罗拉XT1526 API 22级.是否可能这是一个硬件问题,手机不能同时作为gatt服务器和客户端?我也尝试在同一部手机的客户端和服务器上使用一个蓝牙适配器对象,还尝试使用两个独立的蓝牙适配器对象.任何帮助将不胜感激.

小智 1

根据蓝牙规范蓝牙规范 4.2 第 6 卷 B 4.5 部分:连接状态)

“两个 LE 设备地址之间只能有一个连接。发起者不得向其已连接的广告商发送连接请求。如果广告商收到来自其已连接的发起者的连接请求,则应忽略该连接请求。要求。”

手机可能会Android通过断开连接来防止这种情况,因为我在这里也遇到了同样的问题。