BluetoothGatt显示10,000个相同的服务特征

时间:2015-03-21 06:32:58

标签: android bluetooth bluetooth-lowenergy android-bluetooth gatt

我遇到了一个我完全陷入困境的问题,主要是因为它有多么持久。

我正在编写一个小型Android应用程序来与我的Bluegiga BLE113进行通信。之前我已连接到此设备,但我最近进行了GATT修改,但没有反映在Android设备上(在我尝试的所有应用中都没有 - 我在桌面和iOS应用中验证我的GATT已更新如预期的那样。)

我尝试关闭/打开蓝牙并重新启动我的Nexus 7,但仍然没有。最后,我非常绝望并尝试了这里提到的解决方案:https://stackoverflow.com/a/22709467/992509它使用反射命中一个名为refresh的私有BluetoothGatt方法。

它似乎工作得很好,因为我的新服务出现了,然而,我遇到的是我的服务(只有一个特征)显示了具有相同UUID的几百个特征。每次运行我的应用程序,甚至通过设备重启和BT循环,都会增加相同特征的数量。

最后,我绝望了,并在我的Nexus上重置了工厂(它是一个测试设备,所以我不在乎)。没有解决问题,这个图像显示了我所看到的(10k特征):

BluetoothGatt with 10k characteristics

我的BLE113 GATT看起来像这样:

<service uuid="deadbeef-cdcd-cdcd-cdcd-cdcdcdcdcdcd">
    <description>Debugging Service</description>
    <characteristic uuid="deadbeef-0000-0000-0000-000000000000" id="xgatt_debug">
        <description>Debugging output</description>
        <properties read="true" notify="true" />
        <value length="20" />
    </characteristic>
</service>

Android代码基本上只是一个BluetoothGatt.discoverServices()(这是我第一次看到这种情况发生)。

同样,我尝试重置BT,重新启动Nexus,并重置出厂设置。此外,我已经确认我的BLE外设与桌面应用和iOS完全一样。

我使用的是Nexus 7,运行5.0.2,并在我的应用中定位4.4。

1 个答案:

答案 0 :(得分:0)

您正在实施黑客攻击,以便调用未公开的方法。您不知道对自定义固件的方法进行了哪些修改。

黑客为某些人工作(如你所展示的Q&amp; A),但不能保证在任何地方工作。