4

主にそれがどれほど永続的であるかのために、私は完全に困惑している問題を抱えています。

Bluegiga BLE113 と通信するための小さな Android アプリを作成していました。以前にこのデバイスに接続したことはありますが、最近 GATT を変更したため、Android デバイスに反映されていませんでした (試したどのアプリにも反映されていませんでした。デスクトップと iOS アプリから GATT が更新されたことを確認しました)。予想通り)。

Bluetooth をオフ/オンにして、Nexus 7 を再起動しようとしましたが、それでも何も起こりません。最後に、私は必死になり、ここで言及されている解決策を試しました: https://stackoverflow.com/a/22709467/992509リフレクションを使用して、refresh と呼ばれるプライベート BluetoothGatt メソッドをヒットします。

私の新しいサービスが表示されていたので、完全に機能しているように見えましたが、私が遭遇したのは、私のサービス (1 つの特性のみ) が同じ UUID を持つ数百の特性を示しているということでした。アプリを実行するたびに、デバイスの再起動や BT のサイクリングによっても、同一の特性の数が増加しました。

最後に、私は必死になり、Nexus を工場出荷時設定にリセットしました (これはテスト デバイスなので、気にしません)。この画像は私が見ているものを示しています (10k 特性):

10k特性のBluetoothGatt

私の 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 の再起動、工場出荷時設定へのリセットを試みました。また、デスクトップ アプリと iOS を介して、BLE 周辺機器が期待どおりに動作することを確認しました。

私は Nexus 7 を使用しており、5.0.2 を実行しており、アプリで 4.4 をターゲットにしています。

4

1 に答える 1

0

公開されていないメソッドを呼び出すためにハックを実装しています。カスタマイズしたファームウェアのメソッドにどのような変更が加えられたかはわかりません。

ハックは(あなたが示したQ&Aのように)一部で機能しましたが、どこでも機能することを保証することはできません.

于 2015-04-01T08:25:39.397 に答える