Измените android.server.BluetoothService.java, чтобы обновить кэшированный service_channel_no сопряженного устройства, чтобы открыть несколько подключений к нему (на нескольких каналах).

Я застрял в месте, где мой телефон Android (Samsung Galaxy) должен открыть 2 (или более) подключения к моему ПК (серверу), который является сопряженным устройством. Для этого я запускаю сервер SDP на ПК с UUID: 00001101-0000-1000-8000-00805F9B34FB и каналом 2, после первого подключения я отменяю регистрацию службы SDP на ПК и снова регистрирую ее на канале 3 (и тот же UUID) и ожидаю, что мой телефон Android 'подключения» к нему для установления второго соединения Bluetooth. Второй сбой.

Проблема, как я понял, состоит в том, что из-за сопряжения номер канала и UUID устройства дляBluetoothSocket.connect» обслуживаются из кэша и не обновляются, поэтому мое изменение SDP в num канала на стороне сервера здесь не видно, так как оно все еще пытается подключиться к каналу 2 (старый).

Обходной путь этой проблемы (найденный после множества неудачных попыток) может заключаться в изменении файла android.server.BluetoothService.java путем введения updateDeviceServiceChannelCache (addr) перед возвратом в getRemoteServiceChannel () и fetchRemoteUuids (), чтобы обновить номер канала при каждом вызове функции.

Приведенное выше решение вполне может быть неправильным, пожалуйста, простите меня за это. Если это правильно, пожалуйста, предложите какие-либо дальнейшие изменения и как сделать это изменение постоянным в затмении, или в другом случае (неправильное решение), правильный способ сделать это.

Примечание: у меня есть Android 2.3.5 и запросы от устройства на самом деле от браузера, который я пересылаю на ПК. Я хочу их на отдельных каналах.

Благодарю.

Ответы на вопрос(0)

Ваш ответ на вопрос