2011-03-09 1 views
0

Я только что обновил Nexus One с Android 2.3.3, и кажется, что соединение Bluetooth через SPP перестало работать в моем приложении.Проблема в соединении Bluetooth через SPP в Android 2.3.3 в Nexus One?

То же самое приложение работает в HTC Desrire с Android 2.2, и такое же приложение используется для правильной работы на Nexus One. Проблема началась после перехода на Android 2.3.3.

Может ли кто-нибудь сообщить мне, что может быть проблемой?

ответ

1

Мне удалось решить эту проблему с помощью API createInSecureRfcommSocket, а также есть способ подключения через отражение для небезопасных соединений.

+0

что такое отражение? –

0

Я нашел ту же проблему. Я не смог заставить отразить работу для небезопасных сообщений, но публичный интерфейс действительно сработал.

Симптомом является то, что вызов connect() вызывает исключение IOException «Отказано в соединении» каждый раз на 2.3.3, в то время как код работал нормально на 2.2.

Я открыл дефект для андроид здесь: http://code.google.com/p/android/issues/detail?id=15919&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

+1

@ Dennis Mathews - отражение - это способ «обмануть» и получить доступ к приватным методам. Например. Метод m = mDevice.getClass(). GetMethod ("createRfcommSocket", новый класс [] {int.class}); mBluetoothSocket = (BluetoothSocket) m.invoke (mDevice, Integer.valueOf (1)); – gbryant

+0

Замечания от команды разработчиков android dev - это не недостаток, а исправление дефекта в предыдущих версиях, которые вводят меня в заблуждение (и, возможно, другие), в мысли о том, что сокет был безопасным, когда это было не так. См. Ссылку, уже опубликованную для полного объяснения. – gbryant

Смежные вопросы