我正在为 Android 上的蓝牙编写一个主从设计的应用程序。微微网中的主站最多可以有 7 个活动的从站。我已经阅读了 Android 蓝牙开发指南和BluetoothSocket.java
源代码,但是没有提到从站的最大数量。所以我尝试在以下代码中接受超过 7 个从站:
private void startServerSocket(String name) {
BluetoothServerSocket serverSocket = null;
try {
serverSocket = mAdapter.listenUsingInsecureRfcommWithServiceRecord(macMap.get(name), uuidMap.get(name));
for (int i = 0; i < 8; i++) {
BluetoothSocket socket = null;
Log.d(TAG, i + " waitting for " + name + " to accpet...");
socket = serverSocket.accept();
Log.d(TAG, i + " " + name + " accepted");
// corresponding slave thread on master side
MasterSocketThread mst = new MasterSocketThread(socket, socket.getRemoteDevice().getName());
mst.start();
// register slave thread to master manager
mCallback.registerSocketThread(mst);
}
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
结果在第 8 次迭代中,我从accept()
方法中得到了这个异常:
android io.IOException: Connection failure, wrong signal size: 27763
我的问题是它是否与蓝牙标准(7 个主动从属)有关,或者还有其他我不知道的情况?