2012-03-07 4 views
3

Я написал приложение для Android. основная часть заключается в том, что он осуществляет связь через bluetooth. У меня есть четыре устройства:
1. Samsung Galaxy S2
2. Samsung Galaxy Gio
3. Netsurfer сенсорный (А действительно нижний конец локально [Южная Африка] производства таблетки Android)
4. Motorolla ЕТ1
Samsung Galaxy bluetooth драйверы

Теперь я написал свое приложение - мне нужно протестировать полную структуру.

Сначала я написал сторону bluetooth (так как у меня был наименьший опыт) - и единственным устройством, с которым я могу работать, является прикосновение Netsurfer. Он использует стандартные драйверы bluetooth, и он работает СОВЕРШЕННО - я могу получить сигнал на ПК и отлично справиться с ним.

ДРУГАЯ часть моего приложения не может быть выполнена на Netsurfer, потому что это слишком низкая спецификация (на самом деле у нее нет необходимого оборудования). Я пробовал Motorlla, и все приложение работает так, как ожидалось.

Но теперь телефоны Galaxy (как Gio, так и S2) отказываются подключаться к любым компьютерам. Они будут ПАРЫ хорошо, но когда я использую-код Bluetooth для подключения я просто получаю IOException: Обнаружение служб не удалось

Поскольку это не мой код, я начал искать есть драйвер отсутствует на компьютере: " Bluetooth периферийное устройство "- код ошибки Драйверы для этого устройства не установлены. (Код 28)

Я попытался с помощью Windows Update, и это не помогает, у меня есть Samsung Kies установлен, и я проверил эту проблему на два разных компьютерах - как работает Windows 7 x64

идентификатора оборудования являются :
BTHENUM {00001132-0000-1000-8000-00805f9b34fb} _VID & 0001000f_PID BTHENUM {00001132-0000-1000-8000-00805f9b34fb} _LOCALMFG & 000F

Я не верю, чтобы быть проблема остроумия h код, но с драйверами устройств. Но если вам нужен код, я использую код, который находится здесь: http://code.google.com/p/backport-android-bluetooth/source/browse/trunk/backport-android-bluetooth201/src/backport/android/bluetooth/chat/?r=49

ответ

6

В моем приложении у меня есть bluetooth, работающий на галактике S (как 1, так и 2), Nexus One, HTC Desire, планшет Asus и другое устройство. Моего приложения из Android 2.1, и у меня есть этот reflaction в моем коде (с SDK, это Somtimes не удалось по Неизвестной причине мне, с «открытием службы не удался» сообщение об ошибке), что исправлена ​​ошибка:

BluetoothSocket mSocket = null; 
mBluetoothAdapter.cancelDiscovery(); 

Method method; 
try { 
      method = mBluetoothDevice.getClass().getMethod("createRfcommSocket", new Class[] {int.class}); 
      mSocket = (BluetoothSocket) method.invoke(mBluetoothDevice,1); 
    } catch (NoSuchMethodException e1) { 
      e1.printStackTrace(); 
    } catch (IllegalArgumentException e) { 
      e.printStackTrace(); 
    } catch (IllegalAccessException e) { 
      e.printStackTrace(); 
    } catch (InvocationTargetException e) { 
      e.printStackTrace(); 
    } 

mSocket.connect(); 

, но кроме того, я использую sdk, и все работает.

+0

Спасибо, SOOOO, это работает как сон! –

2

Проблема в том, что новые устройства Samsung (и устройства с сенсорным экраном HTC) не имеют полного пакета Bluetooth.

Вот почему, например, приложения, такие как this one, также не работают на этих устройствах. Единственным решением было бы скрыть полный стек Bluetooth, например, путем мигания Cyanogenmod Rom.

+0

Привет, вы можете предоставить мне ссылку на эту информацию? –

+0

Для устройств HTC: http://community.htc.com/na/htc-forums/android/f/91/p/2336/8551.aspx # 8551 Для Samsung и других: https://sites.google.com/site/metawatchdev/bluetooth-compatibility – Force

+0

Но это форумы. Почему производители заявляют об этом? –