我正在创建一个应用程序,它可以同时充当关贸总协定连接的客户端和服务器,但是每当服务器作为客户端运行时,我都会得到一个未知的状态和一个断开连接的状态。
这就是现在的过程:
1)启动一部电话作为服务器(Phone1)
2)以客户端启动另一部电话(Phone2)
3)将Phone2连接到Phone1并接收有关当前时间的通知更新。
4)在Phone2上启动服务器关贸总协定服务器,这是我获得蓝牙关贸总协定回调的未知状态的地方。它首先断开Phone2与Phone1的连接(断开关贸总协定连接),然后BluetoothGattCallBack的电话2的onConnectionStateChange返回断开连接的状态和状态代码19。
我不太清楚是什么导致了这一点,但这两款手机都是完全相同的摩托罗拉XT1526 API22s。这是否可能是一个硬件问题,手机不能同时充当关贸总协定服务器和客户端?我还尝试为同一个电话的客户端和服务器使用一个蓝牙适配器对象,但也使用两个单独的蓝牙适配器对象。任何帮助都将不胜感激。
发布于 2016-06-14 12:30:25
根据蓝牙规格说明 (蓝牙规范4.2第6卷B4.5:连接状态)
两个LE设备地址之间只能有一个连接。发起方不得向已连接的广告客户发送连接请求。如果广告主收到已连接到的发起者的连接请求,则应忽略该请求。
Android手机有可能通过断开连接来防止这种情况,因为我在这里也有同样的问题。
https://stackoverflow.com/questions/35518785
复制相似问题