0

BLEDevice に接続するアプリを開発しています。この接続は、BLE 接続 (BluetoothDevice、BluetoothGatt、BluetoothGattCallBack) のすべてのパラメーターを保持するシングルトンのインスタンスを持つ Sticky Service によって管理されます。

APP の動作は次の行で再開されます。

  1. アプリを開くと、目的の BLE デバイスをスキャン、結合、接続するボタンをクリックします。
  2. 接続されると、BLE デバイスのガット特性を読み取って、接続が正しく確立されているかどうかをテストできる [テスト] ボタンが表示されます。
  3. アプリを強制終了しても、スティッキーであるため、サービスは引き続き実行されます。ポイントは、BLEデバイスとの接続を失わないことです
  4. 次に、アプリをもう一度開いてテスト ボタンを押すと、動作するはずです。

問題はポイント4にあります。アプリを1回閉じた後にテストボタンをクリックすると、次のエラーが表示されます:

原因: java.lang.NullPointerException: null オブジェクト参照で仮想メソッド 'android.bluetooth.BluetoothGattCharacteristic android.bluetooth.BluetoothGattService.getCharacteristic(java.util.UUID)' を呼び出そうとしています

私の理解によると、問題は BluetoothGatt オブジェクトが失われていることです。

BLE接続を失わないようにするにはどうすればよいですか?

4

0 に答える 0