アンドロイドアプリケーションでマイクロプロセッサへの書き込みを実行しようとしていて、何か変なことが起こっています。起動するにはwriteCharacteristicでNULLポインタ例外が発生しました
、エラーのログは以下の通りです:
Unhandled exception in callback
java.lang.NullPointerException
at android.bluetooth.BluetoothGatt.writeCharacteristic(BluetoothGatt.java:874)
at com.example.tannerhenry.standalone.ConfigurationActivity.setWriteSensor(ConfigurationActivity.java:248)
at com.example.tannerhenry.standalone.ConfigurationActivity.access$100(ConfigurationActivity.java:31)
at com.example.tannerhenry.standalone.ConfigurationActivity$4.onServicesDiscovered(ConfigurationActivity.java:289)
at android.bluetooth.BluetoothGatt$1.onSearchComplete(BluetoothGatt.java:295)
at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:215)
at android.os.Binder.execTransact(Binder.java:404)
at dalvik.system.NativeStart.run(Native Method)
ビットのデバッグ後、私は私が記述しようとしています特性が発見されていないことに気づいたので、理由を説明しますヌルポインタ例外が発生します。
問題はです。私のiPhoneにLightBlueをダウンロードして特性が明らかになっているという問題があります。これは、私が特性を初期化するのに間違いを犯したと信じさせるが、私はアプリストアからBluetooth LEスキャナをダウンロードした後も、私のアプリと同じように機能する。
iOSとAndroid getCharacteristicsの違いはありますか?
注:私はこの問題が以前に発生していましたが、解決策は数回アプリケーションを再ダウンロードしており、最終的に特性を読み取っていました。しかし、私は自分のタブレットでデータをクリアしましたが、今は前と同じことをしています。今度はそれを修正していません。
ご協力いただければ幸いです。必要に応じて、より多くのコードを提供することができます。
独自のBluetoothGattCharacteristicオブジェクトを作成するのではなく、最初にgatt.discoverServices()を実行してから取得してから、onServicesDiscoveredコールバックでgatt.getService(uuid)またはgatt.getServices()を使用してサービスを取得してください。次に、service.getCharacteristic(uuid)またはservice.getCharacteristics()を使用してBluetoothGattCharacteristicオブジェクトを取得できます。 – Emil
はい私はonConnectionStateChangeコールバックの接続状態でgatt.discoverServicesを呼び出すので、これは問題ではありません。私はサービスにどれだけの特徴を付けることができるのか分かりますか? @Emil – thenry
gatt dbには0xffff個以上のハンドルがあることを除いて、制限はありません。 – Emil