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

Android蓝牙Gatt服务器/客户端同步连接问题,android,bluetooth,bluetooth-lowenergy,gatt,Android,Bluetooth,Bluetooth Lowenergy,Gatt,我正在努力创建一个应用程序,它可以同时作为gatt连接的客户端和服务器,但每次当服务器作为客户端运行时,我都会获得未知状态和断开连接状态 这就是目前的过程: 1) 启动一部手机作为服务器(Phone1) 2) 启动另一部手机作为客户端(Phone2) 3) 将Phone2连接到Phone1并接收有关当前时间的通知更新 4) 在Phone2上启动服务器gatt服务器,这就是我获取蓝牙gatt回调的未知状态的地方。首先它断开Phone2与Phone1的连接(断开gatt连接),然后Phone2的Bl

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

这就是目前的过程:

1) 启动一部手机作为服务器(Phone1)

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

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

4) 在Phone2上启动服务器gatt服务器,这就是我获取蓝牙gatt回调的未知状态的地方。首先它断开Phone2与Phone1的连接(断开gatt连接),然后Phone2的Bluetooth GattCallback的onConnectionStateChange返回断开状态和状态代码19

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

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


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


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

“两个LE设备地址之间应该只有一个连接”我认为它不适用于同时作为服务器和客户端。它适用于尝试两次连接到单个设备。