gpt4 book ai didi

android - 从 Android 中的多个蓝牙设备读取?

转载 作者:太空狗 更新时间:2023-10-29 15:18:16 26 4
gpt4 key购买 nike

只是为了让它简短。我想连接三个设备并同时读取所有三个设备的数据。我知道如何连接到一个,我可以从中读取数据但我想要的是连接其他两个并从中读取数据。任何建议,或我可以遵循的其他示例。

这是部分代码,与我的相似但更短。此代码可以使用 mac 连接到一台设备。那么如何修改它以同时连接到三个设备并显示它们发送的数据?

请帮助我真的需要它因为我被困在我项目的这一部分。感谢您的帮助。

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()");

最佳答案

您需要做的就是为每个设备创建一个新线程(我建议为此使用 AsyncTask 的实例而不是实际的线程)并调用连接代码 fragment

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();

从那个新线程里面。

关于android - 从 Android 中的多个蓝牙设备读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10544737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com