【问题标题】:Samsung Galaxy bluetooth drivers三星 Galaxy 蓝牙驱动程序
【发布时间】:2012-03-07 06:48:52
【问题描述】:

我为 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

【问题讨论】:

    标签: android bluetooth drivers samsung-mobile


    【解决方案1】:

    在我的应用程序中,我有蓝牙,可用于现有的 Galaxy S(1 和 2)、Nexus One、HTC Desire、华硕平板电脑和其他一些设备。 我的应用程序来自 android 2.1,我的代码中有这个 reflation(使用 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】:

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

      这就是为什么像this one 这样的应用程序也不能在这些设备上运行的原因。唯一的解决方案是刷新完整的蓝牙堆栈,例如通过刷新 Cyanogenmod Rom。

      【讨论】:

      • 您好,您可以为我提供此信息的参考吗?
      • 但这些都是论坛。为什么制造商对此有声明?
      • 没有“官方”声明 - 没有人真正知道为什么制造商不包含完整的 BlueZ 堆栈。但他们这样做了,所以解决问题的唯一方法是刷一个自定义的。
      • 是的,e1 1 hv 一直在努力解决同样的问题,但尚未找到解决方法... hv 尝试使用 AIDL、BluezIme,尝试将其作为 RFcom,尚未尝试使用 NDK 并为其创建 lib。猜闪是唯一的选择。:(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-08
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2019-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多