Samsung Galaxy драйверы Bluetooth - PullRequest
3 голосов
/ 07 марта 2012

Я написал приложение для Android. основная часть в том, что он общается через Bluetooth. У меня есть четыре устройства:
1. Samsung Galaxy S2
2. Samsung Galaxy Gio
3. Netsurfer touch (ДЕЙСТВИТЕЛЬНО бюджетный Android-планшет местного производства [Южная Африка])
4. A Motorolla ET1

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

Сначала я написал блютуз (так как у меня было меньше всего опыта) - и единственное устройство, которое я могу использовать, это сенсорный экран Netsurfer. Он использует стандартные драйверы Bluetooth и работает ОТЛИЧНО - я могу получать сигнал на ПК и прекрасно с ним справляться.

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

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

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 15 марта 2012

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

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, и все работает.

2 голосов
/ 09 марта 2012

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

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

...