我有两台 Android 设备。一个充当服务器,另一个充当客户端。客户端连接到服务器并请求一个文件 - 这是在客户端上的一个线程和服务器上的一个线程中完成的,以便两者都可以继续做他们想做的事情。
然后客户端尝试再次连接到服务器以请求另一个文件。现在我得到了java.io.IOException: Device or resource busy
当尝试连接时(socket.connect()
)。是因为蓝牙(在 Android 上)只允许两个设备之间建立一个通道吗? (如果是另一台设备,它可以工作,但如果是相同的设备,则不能工作?)请注意,两次尝试都是使用相同的服务名称和 UUID 进行的。
即使错误是特定于我的代码的,我也想知道是否是这种情况。
System:android 2.2.1 与 bluecove 蓝牙库通信。
绝对不具有相同的 UUID(通用唯一标识符)。
参考资料取自here http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm
也许有不止一个。您可以以服务器/客户端方式连接多个设备,您可以尝试将其中一台设备设置为服务器,并在另一台设备上启动多个客户端。我的第一个猜测是启动多个客户端线程,但您可能必须找到一种方法来更改每个线程的 MAC 地址。
Here https://android.stackexchange.com/questions/17657/how-to-change-permanent-mac-address-on-my-android-phone您可以找到有关如何更改 mac 地址的另一个讨论,但仅适用于 root 设备。我找不到任何其他非 root 的东西。不知道如何以编程方式执行此操作,但它可能会给您一个开始。
Here https://groups.google.com/forum/?fromgroups=#!topic/android-developers/adeBD275u30有一个关于在服务器中同时连接多个客户端的讨论。我从那里到达这个问题 https://stackoverflow.com/questions/3943182/multiple-bluetooth-connection。 (我想这可能是你最接近的镜头)
Here https://groups.google.com/forum/?fromgroups=#!searchin/android-developers/bluetooth%2420micinski/android-developers/u5oPF2ZkxlI/RkOXR2A3PtYJ你们正在讨论点对点网络。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)