Ble connection retry
This commit is contained in:
parent
fb616a9f29
commit
824e6f0064
|
|
@ -13,8 +13,8 @@ android {
|
|||
applicationId "llc.arma.ble"
|
||||
minSdk 26
|
||||
targetSdk 33
|
||||
versionCode 12
|
||||
versionName "1.2.12"
|
||||
versionCode 13
|
||||
versionName "1.2.13"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
|
|
|
|||
|
|
@ -1022,7 +1022,12 @@ class BleRepositoryImpl @Inject constructor(
|
|||
device: BluetoothDevice,
|
||||
serviceId: UUID,
|
||||
characteristicId: UUID
|
||||
): Result<ByteArray, BleException> = suspendCancellableCoroutine {
|
||||
): Result<ByteArray, BleException> {
|
||||
|
||||
var result: Result<ByteArray, BleException> = Result.failure(BleException.UnexpectedResponse)
|
||||
|
||||
repeat(5){
|
||||
result = suspendCancellableCoroutine {
|
||||
|
||||
var result: ByteArray?
|
||||
|
||||
|
|
@ -1162,12 +1167,27 @@ class BleRepositoryImpl @Inject constructor(
|
|||
|
||||
}
|
||||
|
||||
if(result.isSuccess || (result.getErrorOrNull() is BleException.UnexpectedResponse).not()){
|
||||
return result
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
}
|
||||
|
||||
private suspend fun writeCharacteristic(
|
||||
device: BluetoothDevice,
|
||||
serviceId: UUID,
|
||||
characteristicId: UUID,
|
||||
writeData: ByteArray
|
||||
): Result<Unit, BleException> = suspendCancellableCoroutine {
|
||||
): Result<Unit, BleException> {
|
||||
|
||||
var result: Result<Unit, BleException> = Result.failure(BleException.UnexpectedResponse)
|
||||
|
||||
repeat(5){
|
||||
result = suspendCancellableCoroutine {
|
||||
|
||||
var bleGatt: BluetoothGatt? = null
|
||||
|
||||
|
|
@ -1295,6 +1315,16 @@ class BleRepositoryImpl @Inject constructor(
|
|||
|
||||
}
|
||||
|
||||
if(result.isSuccess || (result.getErrorOrNull() is BleException.UnexpectedResponse).not()){
|
||||
return result
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
}
|
||||
|
||||
fun checkPermission(): Boolean {
|
||||
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue