我已经为 Android 编写了一个应用程序。主要部分是它通过蓝牙进行通信。我有四个设备:
1. 三星 Galaxy S2
2. 三星 Galaxy Gio
3.Netsurfer touch(一款非常低端的本地[南非]生产的安卓平板电脑)
4. 一部摩托罗拉 ET1
现在我已经编写了我的应用程序 - 我需要测试完整的结构。
我首先编写了蓝牙方面(因为那是我经验最少的部分)- 我唯一可以使用的设备是 Netsurfer touch。它使用标准的蓝牙驱动程序并且运行完美 - 我可以在 PC 上接收信号并完美地处理它。
我的应用程序的其他部分无法在 Netsurfer 上完成,因为它的规范太低(它实际上没有所需的硬件)。我已经试用了 Motorlla,整个应用程序都按预期运行。
但现在 Galaxy 手机(包括 Gio 和 S2)拒绝与任何计算机连接。它们可以很好地配对,但是当我使用蓝牙代码连接时,我只会得到一个IOException: Service discovery failed
由于这不是我的代码,我开始查找我的计算机上是否缺少驱动程序:“蓝牙外围设备”- 错误代码未安装此设备的驱动程序。 (代码 28)
我尝试过使用 Windows 更新,但失败了,我安装了 Samsung 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
最佳答案
在我的应用程序中,我有蓝牙,适用于 stock 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,一切正常。
关于android - Samsung Galaxy 蓝牙驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9596978/