gpt4 book ai didi

Android:如何使用蓝牙向多个设备发送消息?

转载 作者:行者123 更新时间:2023-11-29 15:27:48 25 4
gpt4 key购买 nike

我使用以下代码将文本文件发送到多个设备,

ContentValues values = new ContentValues(); 
String filePath1 =Environment.getExternalStorageDirectory().toString()+"/filename.txt";
values.put(BluetoothShare.URI, Uri.fromFile(newFile(filePath1)).toString());
values.put(BluetoothShare.DESTINATION,itDevices.getAddress()); values.put(BluetoothShare.DIRECTION, BluetoothShare.DIRECTION_OUTBOUND);
Long ts = System.currentTimeMillis();
values.put(BluetoothShare.TIMESTAMP, ts);
Uri contentUri = getContentResolver().insert(BluetoothShare.CONTENT_URI, values);

我想要相同类型的代码来发送消息。通过使用蓝牙 API 应用程序,当我尝试首先将消息发送到多个设备时,我连接到一个设备并向该设备发送消息,然后再次断开连接并连接到另一个设备并以这种方式向另一个设备发送消息。

是否可以在不断开通信的情况下,一个接一个地向多个设备发送消息?

最佳答案

是的,我相信可以同时与多个 Android 蓝牙设备交换消息 - 无需断开连接和重新连接。

首先撇开 Android API,蓝牙绝对允许您同时连接到多个设备并与之通信。所有蓝牙连接都发生在微微网中,其中包括一个主设备和最多 7 个从设备。一个设备可以是多个微微网的一部分,但这是低效的(两个微微网的时间不协调)并且可能不可靠,所以如果你想连接到多个其他设备,你必须确保你是主人。

我已经使用 BlueZ(大多数 Linux 和 Android 设备上的蓝牙堆栈,包括 AOSP)完成了此类操作,因此我可以验证它是否相当简单且工作可靠。

但是我在Android上只做过一对一的连接,所以我不能肯定你是怎么控制那里的主从分配的。与常规 Linux 相比,Android 提供的功能和控制要少得多,并且无法直接读取或更改主从角色分配。

理论上,您应该能够根据发起连接的一方将成为主人的规则来控制角色,但我想做一些测试以查看可能发生的其他情况。我的担忧主要来自于其中一个客户端设备(您希望成为从属设备)可能已经连接到例如服务器的可能性。耳机或键盘,因此当它收到传入的连接请求时,它可能会请求切换到主角色,以便它可以将您的服务器添加到它的微微网中。

我的建议是,当您进行测试时,在您的其中一台设备(例如 Linux 机器或已获得 root 权限的 Android)上访问 hcitool 并执行“hcitool”。 con',它会给你一个当前连接的列表,我认为这包括角色。 (hcitool 是 Linux 上的标准工具,包含在 AOSP 中。)我想你也可以使用经验方法:如果你能够创建一堆可靠工作的同时连接,那么它如何工作并不重要- 只需确保测试某些设备与其他设备存在现有连接的情况。

很抱歉继续,但我认为这是一个很好的问题,并且有兴趣听取在 Android 上做过这个的人的意见。我想我听说过适用于 Android 的多人蓝牙游戏 - 我想知道这些游戏是否可靠。

关于Android:如何使用蓝牙向多个设备发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10038997/

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