|
@@ -199,7 +199,7 @@ object BleConnectionManager {
|
|
|
) {
|
|
) {
|
|
|
Executor.runOnMain {
|
|
Executor.runOnMain {
|
|
|
CommonUtils.checkBlePermission(activity) {
|
|
CommonUtils.checkBlePermission(activity) {
|
|
|
- doScanBle(mac, isNeedLoading, prepareDoneCallBack)
|
|
|
|
|
|
|
+ doScanBle(mac, isNeedLoading, 3, prepareDoneCallBack)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -208,6 +208,7 @@ object BleConnectionManager {
|
|
|
private fun doScanBle(
|
|
private fun doScanBle(
|
|
|
mac: String,
|
|
mac: String,
|
|
|
isNeedLoading: Boolean = false,
|
|
isNeedLoading: Boolean = false,
|
|
|
|
|
+ retryTimes: Int = 3,
|
|
|
prepareDoneCallBack: ((Boolean, BleBean?) -> Unit)?
|
|
prepareDoneCallBack: ((Boolean, BleBean?) -> Unit)?
|
|
|
) {
|
|
) {
|
|
|
LogUtil.i("蓝牙连接-doScanBle:$mac")
|
|
LogUtil.i("蓝牙连接-doScanBle:$mac")
|
|
@@ -221,18 +222,23 @@ object BleConnectionManager {
|
|
|
// 蓝牙未启动重试
|
|
// 蓝牙未启动重试
|
|
|
LogUtil.i("蓝牙连接-参数:${promptStr}")
|
|
LogUtil.i("蓝牙连接-参数:${promptStr}")
|
|
|
BleManager.getInstance().enableBluetooth()
|
|
BleManager.getInstance().enableBluetooth()
|
|
|
- doScanBle(mac, isNeedLoading, prepareDoneCallBack)
|
|
|
|
|
|
|
+ doScanBle(mac, isNeedLoading, retryTimes, prepareDoneCallBack)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
override fun onScanStarted(success: Boolean) {
|
|
override fun onScanStarted(success: Boolean) {
|
|
|
LogUtil.i("蓝牙连接-onScanStarted:${success}")
|
|
LogUtil.i("蓝牙连接-onScanStarted:${success}")
|
|
|
- if (!success) {
|
|
|
|
|
|
|
+ if (!success && retryTimes == 0) {
|
|
|
if (isNeedLoading) sendEventMsg(
|
|
if (isNeedLoading) sendEventMsg(
|
|
|
MsgEvent(
|
|
MsgEvent(
|
|
|
MSG_EVENT_LOADING, LoadingMsg(false, null, null)
|
|
MSG_EVENT_LOADING, LoadingMsg(false, null, null)
|
|
|
)
|
|
)
|
|
|
)
|
|
)
|
|
|
prepareDoneCallBack?.invoke(false, null)
|
|
prepareDoneCallBack?.invoke(false, null)
|
|
|
|
|
+ } else if (!success && retryTimes > 0) {
|
|
|
|
|
+ BleManager.getInstance().cancelScan()
|
|
|
|
|
+ ThreadUtils.runOnMainDelayed(3000) {
|
|
|
|
|
+ doScanBle(mac, isNeedLoading, retryTimes - 1, prepareDoneCallBack)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -503,14 +509,13 @@ object BleConnectionManager {
|
|
|
return@registerConnectListener
|
|
return@registerConnectListener
|
|
|
}
|
|
}
|
|
|
isCalled = true
|
|
isCalled = true
|
|
|
- if (isDone) {
|
|
|
|
|
|
|
+ if (isDone && cont.isActive) {
|
|
|
// 连接成功后,把电关掉(以防万一)
|
|
// 连接成功后,把电关掉(以防万一)
|
|
|
controlKeyCharge(false, mac) { }
|
|
controlKeyCharge(false, mac) { }
|
|
|
cont.resume(true)
|
|
cont.resume(true)
|
|
|
} else {
|
|
} else {
|
|
|
cont.resume(false)
|
|
cont.resume(false)
|
|
|
}
|
|
}
|
|
|
- cont.cancel()
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
LogUtil.i("蓝牙连接-第一次连接:${firstTry},是否继续尝试上电连接${withOpenCharge}")
|
|
LogUtil.i("蓝牙连接-第一次连接:${firstTry},是否继续尝试上电连接${withOpenCharge}")
|
|
@@ -546,8 +551,9 @@ object BleConnectionManager {
|
|
|
isCalled = true
|
|
isCalled = true
|
|
|
// 无论成功或失败,都先把电关掉
|
|
// 无论成功或失败,都先把电关掉
|
|
|
controlKeyCharge(false, mac) { }
|
|
controlKeyCharge(false, mac) { }
|
|
|
- cont.resume(isDone)
|
|
|
|
|
- cont.cancel()
|
|
|
|
|
|
|
+ if (cont.isActive) {
|
|
|
|
|
+ cont.resume(isDone)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return@withContext secondTry
|
|
return@withContext secondTry
|