V4.2.4a - check for null gatt characteristic before writing - should fix #158

This commit is contained in:
Graham Jones
2024-03-24 22:16:13 +00:00
parent 340b82ad1b
commit cff9d4567c
2 changed files with 17 additions and 13 deletions

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:versionCode="137"
android:versionName="4.2.3">
android:versionCode="138"
android:versionName="4.2.4a">
<!-- android:allowBackup="false" -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

View File

@@ -392,18 +392,22 @@ public class SdDataSourceBLE extends SdDataSource {
* @param nBytes - number of bytes to send.
*/
private void executeWriteCharacteristic(BluetoothGattCharacteristic gattCharacteristic, byte[] valBytes) {
gattCharacteristic.setValue(valBytes);
boolean retVal = mBluetoothGatt.writeCharacteristic(gattCharacteristic);
if (retVal) {
Log.d(TAG, "executeWriteCharacteristic - write initiated successfully");
if (gattCharacteristic != null) {
gattCharacteristic.setValue(valBytes);
boolean retVal = mBluetoothGatt.writeCharacteristic(gattCharacteristic);
if (retVal) {
Log.d(TAG, "executeWriteCharacteristic - write initiated successfully");
} else {
Log.d(TAG, "executeWriteCharacteristic - write initiation failed - waiting, then re-trying");
mHandler.postDelayed(new Runnable() {
public void run() {
Log.w(TAG, "Executing delayed write of characteristic");
executeWriteCharacteristic(gattCharacteristic, valBytes);
}
}, 100);
}
} else {
Log.d(TAG, "executeWriteCharacteristic - write initiation failed - waiting, then re-trying");
mHandler.postDelayed(new Runnable() {
public void run() {
Log.w(TAG, "Executing delayed write of characteristic");
executeWriteCharacteristic(gattCharacteristic, valBytes);
}
}, 100);
Log.i(TAG,"ExecuteWriteCharacteristic() - gatCharacteristic is null, so not doing anything");
}
}