修改android.server.BluetoothService.java以更新配对设备的缓存service_channel_no以打开多个连接(在多个通道上)

时间:2012-11-04 11:49:40

标签: android browser bluetooth rfcomm

我被困在我的Android手机(三星Galaxy)必须打开2个(或更多)连接到我的PC(服务器)的地方,这是一个配对设备。为此,我在PC上使用UUID:00001101-0000-1000-8000-00805F9B34FB和通道2启动SDP服务器,在第一次连接后,我在PC上取消注册SDP服务并在通道3上再次注册(和相同的UUID)并期望我的Android手机“连接”它以建立第二个蓝牙连接。第二个失败了。

我已经想到的问题是,由于配对,'BluetoothSocket.connect'设备的通道号和UUID是从缓存服务的,并没有被更新,所以我的SDP在通道数上改变了服务器端在此处不可见,因为它仍然尝试连接到通道2(旧的)。

这个问题的解决方法(在很多令人沮丧的尝试之后找到)可能是通过引入更改android.server.BluetoothService.java文件 updateReviceServiceChannelCache(addr)在返回getRemoteServiceChannel()和fetchRemoteUuids()之前,以便在每次func调用时更新通道号。

上述解决方案可能是错误的,请原谅我。如果它是正确的,请建议任何进一步的更改以及如何在eclipse中永久更改此更改,或者在其他情况下(错误的解决方案),这是正确的方法。

注意:我有android 2.3.5,来自设备的请求实际上来自我转发到PC的浏览器。我希望他们在不同的渠道上。

感谢。

0 个答案:

没有答案