From 47317b3c5d15c85aa74360ef6f4c3e51b3062dcb Mon Sep 17 00:00:00 2001 From: jjangddu Date: Mon, 3 Aug 2026 15:09:06 +0900 Subject: [PATCH] =?UTF-8?q?fix(firmware):=20=EC=A7=84=EC=9E=85=20=EC=8B=9C?= =?UTF-8?q?=20=EB=A9=94=EC=9D=B8=20=EC=95=B1=20BLE=20=EC=97=B0=EA=B2=B0=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=20=ED=95=B4=EC=A0=9C=20=E2=80=94=20=EC=8A=A4?= =?UTF-8?q?=EC=BA=94=20=EB=AF=B8=EA=B2=80=EC=B6=9C=20=ED=95=B4=EA=B2=B0=20?= =?UTF-8?q?(cloud-mvp=20bc46b7f=20=EC=9D=B4=EC=8B=9D)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 문제: 이미 프로브에 BLE 연결된 상태로 펌웨어 업데이트 화면 진입 → 스캔해도 프로브가 목록에 안 뜸. 원인: BLE peripheral (VBT 프로브) 는 central 과 연결 중일 때 광고 중단 (표준 BLE 동작). DfuManager 의 새 BleScanner 는 광고를 못 잡음. 해결: FirmwareUpdateScreen 진입 시 LaunchedEffect 안에서 메인 앱의 BleManager.getInstance(context).disconnect() 호출. → 연결 해제 → 프로브 다시 광고 → DfuManager 스캔에서 검출 가능. Co-Authored-By: Claude Opus 4.7 --- .../medithings/vesiscan/firmware/ui/FirmwareUpdateView.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/com/medithings/vesiscan/firmware/ui/FirmwareUpdateView.kt b/app/src/main/java/com/medithings/vesiscan/firmware/ui/FirmwareUpdateView.kt index 51a7a5a..d4d8730 100644 --- a/app/src/main/java/com/medithings/vesiscan/firmware/ui/FirmwareUpdateView.kt +++ b/app/src/main/java/com/medithings/vesiscan/firmware/ui/FirmwareUpdateView.kt @@ -91,6 +91,11 @@ fun FirmwareUpdateScreen(onBack: () -> Unit, modifier: Modifier = Modifier) { ) { result -> granted = result.values.all { it } } LaunchedEffect(Unit) { + // 진입 시 메인 앱 BLE 연결 해제 — 프로브가 연결 중이면 광고 중단되어 + // DfuManager 스캔에서 안 보이는 문제 해결 (2026-08-03). + runCatching { + com.medithings.vesiscan.ble.BleManager.getInstance(context).disconnect() + } manager.loadFirmware() if (!granted) launcher.launch(perms) }