更新串口插件
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* CPU WakeLock 保活工具
|
||||
* 申请 PARTIAL_WAKE_LOCK 保持CPU调度活跃
|
||||
* 防止 Android 10 后台 Native→JS Bridge 回调被阻塞
|
||||
*/
|
||||
let wakeLock = null
|
||||
|
||||
export default {
|
||||
/**
|
||||
* 申请WakeLock(App启动/串口服务启动时调用)
|
||||
*/
|
||||
acquire() {
|
||||
// #ifdef APP-PLUS
|
||||
try {
|
||||
if (wakeLock) return // 已持有
|
||||
|
||||
const main = plus.android.runtimeMainActivity()
|
||||
const PowerManager = plus.android.importClass('android.os.PowerManager')
|
||||
const pm = main.getSystemService('power')
|
||||
|
||||
// PARTIAL_WAKE_LOCK: 仅保持CPU运行,不亮屏、不锁键盘
|
||||
wakeLock = pm.newWakeLock(
|
||||
PowerManager.PARTIAL_WAKE_LOCK,
|
||||
'endoscope:serial_service'
|
||||
)
|
||||
// 设置引用计数为false,避免多次acquire需对应次数release
|
||||
plus.android.invoke(wakeLock, 'setReferenceCounted', false)
|
||||
wakeLock.acquire()
|
||||
|
||||
console.log('[wakeLock] PARTIAL_WAKE_LOCK 已获取')
|
||||
} catch (e) {
|
||||
console.error('[wakeLock] 获取失败:', e)
|
||||
}
|
||||
// #endif
|
||||
},
|
||||
|
||||
/**
|
||||
* 释放WakeLock(串口服务完全停止时调用)
|
||||
*/
|
||||
release() {
|
||||
// #ifdef APP-PLUS
|
||||
try {
|
||||
if (wakeLock) {
|
||||
if (wakeLock.isHeld()) {
|
||||
wakeLock.release()
|
||||
console.log('[wakeLock] 已释放')
|
||||
}
|
||||
wakeLock = null
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('[wakeLock] 释放失败:', e)
|
||||
}
|
||||
// #endif
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user