From 7a9b3db3ca62fdbc1faeff5808ead466b1c3e2df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=A0=E9=97=BB=E9=A3=8E?= Date: Fri, 26 Jun 2026 17:22:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=AF=8F=E6=AC=A1?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E5=90=8E=E5=85=B3=E9=97=AD=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E4=BA=8C=E6=AC=A1=E6=89=93=E5=8D=B0=E6=8A=A5?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=9C=AA=E6=89=93=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除 PrintHelper/PrintJob/PrinterManager/PrinterTestScreen 中每次打印后的 closeDevice() 调用, 设备生命周期由 MainActivity 管理(onStart 打开,onDestroy 关闭),避免反复 close->open 导致 SDK open() 失败。 --- .../ops_android/printer/PrintHelper.kt | 37 ++----------------- .../example/ops_android/printer/PrintJob.kt | 2 - .../ops_android/printer/PrinterManager.kt | 4 -- .../ui/settings/PrinterTestScreen.kt | 7 ---- 4 files changed, 4 insertions(+), 46 deletions(-) diff --git a/app/src/main/java/com/example/ops_android/printer/PrintHelper.kt b/app/src/main/java/com/example/ops_android/printer/PrintHelper.kt index 3b132cc..7a7c3cd 100644 --- a/app/src/main/java/com/example/ops_android/printer/PrintHelper.kt +++ b/app/src/main/java/com/example/ops_android/printer/PrintHelper.kt @@ -4,7 +4,6 @@ import com.example.ops_android.data.model.Item import com.example.ops_android.data.model.PurchaseOrder import com.example.ops_android.data.model.WorkOrder import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.delay import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.withContext @@ -36,14 +35,7 @@ object PrintHelper { } else { printerManager.addLineFeed((unwindMm / 7).toInt().coerceAtLeast(2)) } - printerManager.commit().fold( - onSuccess = { - delay(1000) - printerManager.closeDevice() - Result.success(Unit) - }, - onFailure = { Result.failure(it) } - ) + printerManager.commit() } catch (e: Exception) { Result.failure(e) } @@ -73,14 +65,7 @@ object PrintHelper { } else { printerManager.addLineFeed((unwindMm / 7).toInt().coerceAtLeast(2)) } - printerManager.commit().fold( - onSuccess = { - delay(1000) - printerManager.closeDevice() - Result.success(Unit) - }, - onFailure = { Result.failure(it) } - ) + printerManager.commit() } catch (e: Exception) { Result.failure(e) } @@ -111,14 +96,7 @@ object PrintHelper { } else { printerManager.addLineFeed((unwindMm / 7).toInt().coerceAtLeast(2)) } - printerManager.commit().fold( - onSuccess = { - delay(1000) - printerManager.closeDevice() - Result.success(Unit) - }, - onFailure = { Result.failure(it) } - ) + printerManager.commit() } catch (e: Exception) { Result.failure(e) } @@ -149,14 +127,7 @@ object PrintHelper { } else { printerManager.addLineFeed((unwindMm / 7).toInt().coerceAtLeast(2)) } - printerManager.commit().fold( - onSuccess = { - delay(1000) - printerManager.closeDevice() - Result.success(Unit) - }, - onFailure = { Result.failure(it) } - ) + printerManager.commit() } catch (e: Exception) { Result.failure(e) } diff --git a/app/src/main/java/com/example/ops_android/printer/PrintJob.kt b/app/src/main/java/com/example/ops_android/printer/PrintJob.kt index 3c9eb64..4f6c6ef 100644 --- a/app/src/main/java/com/example/ops_android/printer/PrintJob.kt +++ b/app/src/main/java/com/example/ops_android/printer/PrintJob.kt @@ -46,8 +46,6 @@ class PrintJob(private val manager: PrinterManager) { if (lineFeeds > 0) manager.addLineFeed(lineFeeds).getOrThrow() manager.commit().getOrThrow() - Thread.sleep(1500) - manager.closeDevice().getOrThrow() } /** 初始化 → 添加内容 → 提交(不关闭) */ diff --git a/app/src/main/java/com/example/ops_android/printer/PrinterManager.kt b/app/src/main/java/com/example/ops_android/printer/PrinterManager.kt index 93e55e4..6f98893 100644 --- a/app/src/main/java/com/example/ops_android/printer/PrinterManager.kt +++ b/app/src/main/java/com/example/ops_android/printer/PrinterManager.kt @@ -301,8 +301,6 @@ class PrinterManager(private val context: Context) { initDevice().getOrThrow() addText(text).getOrThrow() commit().getOrThrow() - Thread.sleep(1500) - closeDevice().getOrThrow() } fun quickLabel(text: String): Result = runCatching { @@ -310,8 +308,6 @@ class PrinterManager(private val context: Context) { enableMarkDetection(true).getOrThrow() addText(text).getOrThrow() commit().getOrThrow() - Thread.sleep(1500) - closeDevice().getOrThrow() } /** 创建链式打印任务 */ diff --git a/app/src/main/java/com/example/ops_android/ui/settings/PrinterTestScreen.kt b/app/src/main/java/com/example/ops_android/ui/settings/PrinterTestScreen.kt index 00bebb1..9ddc743 100644 --- a/app/src/main/java/com/example/ops_android/ui/settings/PrinterTestScreen.kt +++ b/app/src/main/java/com/example/ops_android/ui/settings/PrinterTestScreen.kt @@ -14,7 +14,6 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.example.ops_android.ui.LocalAppContainer import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -120,8 +119,6 @@ fun PrinterTestScreen(onBack: () -> Unit) { val pm = printerManager!! pm.initDevice().getOrThrow() pm.commit().getOrThrow() - delay(1000) - pm.closeDevice().getOrThrow() } }, modifier = Modifier.fillMaxWidth(), @@ -137,8 +134,6 @@ fun PrinterTestScreen(onBack: () -> Unit) { pm.initDevice().getOrThrow() pm.addLineFeed(5) pm.commit().getOrThrow() - delay(1000) - pm.closeDevice().getOrThrow() } }, modifier = Modifier.fillMaxWidth(), @@ -155,8 +150,6 @@ fun PrinterTestScreen(onBack: () -> Unit) { pm.initDevice().getOrThrow() pm.addLineFeed(10) pm.commit().getOrThrow() - delay(1000) - pm.closeDevice().getOrThrow() } }, modifier = Modifier.fillMaxWidth(),