From e9741b4dd2f6b770581142919440cbc54e5d63c1 Mon Sep 17 00:00:00 2001 From: "let5sne.win10" Date: Thu, 12 Feb 2026 22:39:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20MainActivity=20?= =?UTF-8?q?=E5=A4=9A=E8=A1=8C=E5=AD=97=E7=AC=A6=E4=B8=B2=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=92=8C=20UI=20=E7=BA=BF=E7=A8=8B=E5=AE=89=E5=85=A8=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用 Kotlin 原始字符串语法替代错误的拼接格式 - 修复 stopCamera() 中 UI 更新不在主线程的问题 - 添加 cameraHelper 重复启动检查 Co-Authored-By: Claude Opus 4.6 --- .../main/java/com/usbwebcam/MainActivity.kt | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/android-app/app/src/main/java/com/usbwebcam/MainActivity.kt b/android-app/app/src/main/java/com/usbwebcam/MainActivity.kt index b8a0c81..9ed0e29 100644 --- a/android-app/app/src/main/java/com/usbwebcam/MainActivity.kt +++ b/android-app/app/src/main/java/com/usbwebcam/MainActivity.kt @@ -48,8 +48,11 @@ class MainActivity : AppCompatActivity() { Toast.makeText(this, "图片已保存到相册", Toast.LENGTH_SHORT).show() } - // 自动启动 - if (checkPermission()) { + if (ContextCompat.checkSelfPermission( + this, + Manifest.permission.CAMERA + ) == PackageManager.PERMISSION_GRANTED + ) { startCamera() } } @@ -68,15 +71,23 @@ class MainActivity : AppCompatActivity() { } private fun startCamera() { + if (cameraHelper != null) return + + mjpegServer = MjpegServer(8080) cameraHelper = CameraHelper(this) { frame, _, _ -> mjpegServer?.updateFrame(frame) } - - mjpegServer = MjpegServer(8080) + + // Start the server and update UI once started mjpegServer?.start { runOnUiThread { - findViewById(R.id.tv_status).text = - "服务运行中端口: 8080IP: 无需IP (ADB模式)USB连接命令:adb forward tcp:8080 tcp:8080" + findViewById(R.id.tv_status).text = """ + 服务运行中 + 端口: 8080 + IP: 无需IP (ADB模式) + USB连接命令: + adb forward tcp:8080 tcp:8080 + """.trimIndent() findViewById