2016-02-20 75 views
4

我正在创建一个应用程序,它可以同时充当gatt连接的客户端和服务器,但每次运行时我都会收到未知状态和断开状态服务器,而它表现得像一个客户端。Android蓝牙GAT服务器/客户端同时连接的问题

这是现在的处理:

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

2)启动另一电话作为客户端(电话2)

3)连接电话2到Phone1并接收有关当前时间的通知更新。

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

我不确定可能是什么原因造成的,但两个电话都是相同的Motorola XT1526 API级别22。这可能是硬件问题,电话不能同时作为gatt服务器和客户端吗?我也曾尝试将同一个蓝牙适配器对象用于相同电话的客户端和服务器,但也尝试使用两个独立的蓝牙适配器对象。任何帮助将不胜感激。

回答

0

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

“应设立两个LE的设备地址之间只有一个连接 引发剂应不发送。向已连接的广告客户发送连接请求 如果广告客户收到来自已连接的发起者的连接请求,则它应忽略该请求。“

这可能是Android手机防止这种情况下断开连接,因为我在这里有同样的问题。

+0

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

相关问题