我正在为两个玩家构建tic tac,需要蓝牙连接来交换一些数据,我可以启用蓝牙,启用发现功能,但是“ BluetoothServerSocket”和客户端“ BluetoothSocket”中的问题,我不知道如何操作这部分,
这是代码:
ArrayList<String>al=new ArrayList<String>();
BluetoothAdapter ba = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = ba.getBondedDevices();
if(pairedDevices.size()>0)
for(BluetoothDevice d: pairedDevices)
al.add(d.getName()+" , "+d.getAddress());
if (!ba.isEnabled())
ba.enable();
BluetoothDevice device;
Intent dis=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
dis.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,300);
startActivity(dis);
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(UUID);
socket.connect();
InputStream is=socket.getInputStream();
OutputStream os=socket.getOutputStream();
最佳答案
两个播放器都将通过“ BluetoothSocket”进行通信,您可以使用它们使用InputStreams和OutputStreams发送/接收数据。但是要获得这样的一对套接字,您可以执行以下操作:
在一个播放器的一侧创建BluetoothServerSocket,另一个连接到该播放器。 BluetoothServerSocket使用“ accept”方法侦听连接,该方法会阻塞直到客户端BluetoothSocket连接到它为止。之后,BluetoothServerSocket.accept()方法将返回一个BluetoothSocket,可与客户端Btsocket一起使用以进行2路信息传输。
希望这可以帮助...
PS:createRfcommSocketToServiceRecord只会创建一个上述客户端。双方可以使用相同的UUID
关于android - 蓝牙 socket ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10148581/