diff --git a/app/src/main/java/com/hikoncont/manager/ScreenCaptureManager.kt b/app/src/main/java/com/hikoncont/manager/ScreenCaptureManager.kt index 27c2ca3..a5e9ddb 100644 --- a/app/src/main/java/com/hikoncont/manager/ScreenCaptureManager.kt +++ b/app/src/main/java/com/hikoncont/manager/ScreenCaptureManager.kt @@ -83,9 +83,9 @@ class ScreenCaptureManager(private val service: AccessibilityRemoteService) { // ✅ 图像获取失败计数 private var consecutiveImageFailures = 0 - private val maxImageFailuresBeforeRecreation = 5 // 连续5次失败即重建(加速回退) + private val maxImageFailuresBeforeRecreation = 10 // 连续10次失败才考虑重新创建 - // ✅ VirtualDisplay重建次数限制 + // ✅ VirtualDisplay重建次数限制,防止无限重建循环 private var virtualDisplayRebuildCount = 0 private val MAX_VIRTUAL_DISPLAY_REBUILD_ATTEMPTS = 3 @@ -484,6 +484,7 @@ class ScreenCaptureManager(private val service: AccessibilityRemoteService) { virtualDisplayRebuildCount++ Log.w(TAG, "⚠️ 连续 ${consecutiveFailures} 次无法获取有效帧,重建 VirtualDisplay (${virtualDisplayRebuildCount}/${MAX_VIRTUAL_DISPLAY_REBUILD_ATTEMPTS})") + // 重建次数超限,回退到无障碍截图 if (virtualDisplayRebuildCount > MAX_VIRTUAL_DISPLAY_REBUILD_ATTEMPTS) { Log.w(TAG, "🚨 重建次数已达上限,回退到无障碍截图") cleanupVirtualDisplayOnly() @@ -632,7 +633,7 @@ class ScreenCaptureManager(private val service: AccessibilityRemoteService) { } catch (e: Exception) { Log.w(TAG, "⚠️ 屏幕捕获失败: ${e.message}") consecutiveFailures++ - delay(100) + delay(100) // ✅ 出错时进一步缩短间隔,保持流畅度(从200ms改为100ms) } } }