三星Galaxy蓝牙驱动程序

时间:2012-03-07 06:48:53

标签: android bluetooth drivers samsung-mobile

我已经为Android编写了一个应用程序。主要部分是它通过蓝牙进行通信。我有四个设备:
1.三星Galaxy S2
2.三星Galaxy Gio
3. Netsurfer touch(AREALLY低端本地[南非]制作安卓平板电脑)
4. Motorolla ET1

现在我已经编写了我的应用程序 - 我需要测试完整的结构。

我首先写了蓝牙方面(因为那是我最不经验的) - 我唯一可以上班的设备是Netsurfer触控。它使用标准的蓝牙驱动程序,它完美地工作 - 我可以在PC上接收信号并完美地处理它。

我的应用程序的OTHER部分无法在Netsurfer上完成,因为它的规格太低(它实际上没有所需的硬件)。我尝试了Motorlla,整个应用程序按预期工作。

但现在Galaxy手机(Gio和S2)拒绝连接任何电脑。他们会很好,但是当我使用蓝牙代码连接时,我得到一个 IOException:服务发现失败

由于它不是我的代码,我开始查看我的计算机上缺少驱动程序:“蓝牙外围设备” - 错误代码未安装此设备的驱动程序。 (守则28)

我尝试过使用Windows更新,但是失败了,我安装了三星Kies,并且我已经在两台独立的计算机上验证了这个问题 - 两者都运行Windows 7 x64

硬件ID是:
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 个答案:

答案 0 :(得分:6)

在我的应用程序中我有蓝牙,工作股票galaxy S(1和2),Nexus One,HTC Desire,华硕平板电脑和其他一些设备。 我的应用程序来自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,一切正常。

答案 1 :(得分:2)

问题是,较新的三星设备(和HTC传感设备)没有完整的蓝牙堆栈。

这就是为什么像this one这样的应用程序也无法在这些设备上运行。唯一的解决方案是闪存完整的蓝牙堆栈,例如通过闪烁Cyanogenmod Rom。