短くするだけです。3 つのデバイスに接続し、3 つすべてから同時にデータを読み取りたいと考えています。私は1つに接続する方法を知っており、そこからデータを読み取ることができますが、他の2つを接続してそれらから読み取ることが必要です.任意の提案、または私が従うことができる他の例.
これは私のものに似ていますが短いコードの一部です。このコードは、Mac を使用して 1 つのデバイスに接続できます。では、これを変更して 3 つのデバイスに同時に接続し、それらが送信しているデータを表示するにはどうすればよいでしょうか?
私のプロジェクトのこの部分で立ち往生しているため、本当に必要なのを助けてください。助けてくれてありがとう。
private boolean connected = false;
private BluetoothSocket sock;
private InputStream in;
public void test() throws Exception {
if (connected) {
return;
}
BluetoothDevice zee = BluetoothAdapter.getDefaultAdapter().
getRemoteDevice("00:14:C5:A1:02:67");
Method m = zee.getClass().getMethod("createRfcommSocket",
new Class[] { int.class });
sock = (BluetoothSocket)m.invoke(zee, Integer.valueOf(1));
devicecon.setText("Connecting......");
sock.connect();
devicecon.setText("Connected");
in = sock.getInputStream();
byte[] buffer = new byte[50];
int read = 0;
Log.d("ZeeTest", "++++ Listening...");
try {
while (true) {
read = in.read(buffer);
connected = true;
StringBuilder buf = new StringBuilder();
for (int i = 0; i < read; i++) {
int b = buffer[i] & 0xff;
if (b < 0x10) {
buf.append("0");
}
buf.append(Integer.toHexString(b)).append(" ");
}
Log.d("ZeeTest", "++++ Read "+ read +" bytes: "+ buf.toString());
}
} catch (IOException e) {}
Log.d("ZeeTest", "++++ Done: test()");