我被困在一个地方,我的 Android 手机(三星 Galaxy)必须打开 2 个(或更多)到我的 PC(服务器)的连接,这是一个配对设备。为此,我在 PC 上使用 UUID 启动 SDP 服务器:00001101-0000-1000-8000-00805F9B34FB 和通道 2,第一次连接后,我在 PC 上取消注册 SDP 服务,并在通道 3 上再次注册(和相同的 UUID)并期望我的 Android 手机“连接”到它以建立第二个蓝牙连接。第二个失败了。
我发现的问题是,由于配对,“BluetoothSocket.connect”设备的通道编号和 UUID 是从缓存中提供服务的,并且没有更新,因此我的 SDP 在服务器端的通道编号中发生了更改此处不可见,因为它仍尝试连接到通道 2(旧通道)。
此问题的解决方法(经过多次令人沮丧的尝试后发现)可能是更改 android.server.BluetoothService.java 文件,通过引入
updateDeviceServiceChannelCache(addr) 在 getRemoteServiceChannel() 和 fetchRemoteUuids() 返回之前,以便在每次 func 调用时更新通道号。
上述解决方案可能是错误的,请原谅。如果它是正确的,请建议任何进一步的更改以及如何使此更改在 Eclipse 中永久存在,或者在其他情况下(错误的解决方案),建议正确的方法。
注意:我有android 2.3.5,来自设备的请求实际上来自我转发到PC的浏览器。我希望它们在不同的频道上播放。
thanks.
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)