diff --git a/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PlacementGuideView.kt b/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PlacementGuideView.kt
index c824516..243112b 100644
--- a/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PlacementGuideView.kt
+++ b/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PlacementGuideView.kt
@@ -921,11 +921,21 @@ fun PlacementGuideView(appState: AppState) {
}
}
bleManager.debugLogger.info("ALIGN_V2 phase=${v2Aligner.phase} state=${st.state} action=${st.action} u4=${st.summary?.u4} u5=${st.summary?.u5} ch3=${st.summary?.ch3} bestSet=${v2Aligner.bestCenterSet}")
+ // 2026-08-05 sanity check: 6채널 모두 wall 미검출 → 부착 이슈 가능성.
+ // DetachmentDetection AND (mean·std) 임계를 통과했더라도 EMI/노이즈로
+ // 실제 접촉 없이 alignment 가 "위로 올려" 힌트 반복 노출하는 케이스 방지.
+ val detectedCount = st.summary?.detected?.count { it } ?: 0
// Localized message via string resource (falls back to st.msg for dev builds)
val localizedMsg = st.msgKey?.let { key ->
context.getString(key, *st.msgArgs.toTypedArray())
} ?: st.msg
- if (st.state == "accum") {
+ if (detectedCount == 0) {
+ // 0/6 walls · alignment advice 무시 · 부착 확인 안내로 override.
+ directionHint = context.getString(R.string.placement_check_attachment)
+ directionIcon = ""
+ placementScore = 0
+ bleManager.debugLogger.info("ALIGN_V2 sanity: 0/6 walls · override to attachment check")
+ } else if (st.state == "accum") {
directionHint = localizedMsg
directionIcon = ""
placementScore = 5
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 63d35d8..d5f826b 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -335,6 +335,8 @@
기기 응답이 지연되고 있습니다. 잠시만 기다려주세요…
기기 응답 실패 · 재부팅이 필요할 수 있습니다 (전원 15초 롱프레스).
센서가 분리되었습니다. 치골 위에서 다시 시작해주세요.
+
+ 부착 상태 확인 필요 — 모든 채널에서 신호가 감지되지 않습니다. 센서를 치골 위에 밀착시켜 주세요.
신호를 놓쳤습니다 — 위로 올려주세요 ↑
배꼽 근처에서 시작해 천천히 아래로 내려주세요 ↓
너무 멀어요 — 위로 올려주세요 ↑
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bfa7302..b9ad611 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -335,6 +335,8 @@
Device response delayed. Please wait…
Device not responding. A reboot may be required (long-press power 15 seconds).
Sensor detached. Restart above pubic bone.
+
+ Attachment check needed — no signal from any channel. Ensure sensor is firmly placed above pubic bone.
Signal lost — slide up ↑
Start near navel, slide down slowly ↓
Too far — slide up ↑