워치로 스마트폰 카메라를 원격 제어하는 셔터 앱
com.watch_go.remotecamwatchWear OS 워치를 Android 폰 카메라의 저지연 리모컨으로 사용하는 앱입니다. 폰이 보는 화면을 워치에서 실시간으로 미리 보며 원격으로 촬영 · 모드 전환 · 타이머 · 플래시 · 카메라 전환 등을 제어할 수 있습니다. 삼각대 위 셀프 샷, 단체 사진, 브이로그 모니터링, 자연스러운 캔디드 샷에 특화되어 있습니다.
ChannelClient로 워치에 저지연 스트리밍CapabilityClient로 watch_go_cam 기능을 가진 워치 탐색 후 자동 연결:app)ImageAnalysis 유스케이스로 프레임 캡처YuvImage로 NV21 포맷을 JPEG 압축 (전송 크기 최적화)/camera_preview 채널로 저지연 전송Channel.CONFLATED로 백프레셔 관리CAMERA 필수. Android 12(API 31)+에서 BLUETOOTH_CONNECT, BLUETOOTH_SCAN 필수:wear)BitmapFactory로 수신 바이트 디코딩WAKE_LOCK 권한)MainActivity가 CapabilityClient로 watch_go_cam 기능 노드 주기 탐색 (checkConnectedDevices)syncState가 STATE_CONNECTED로 전환ChannelClient / MessageClient 리스너 등록 후 "Waiting for connection..."/ping 메시지 → Wear가 "Ping Received"ChannelClient.openChannel("/camera_preview") → Wear가 "Waiting for video..."ImageAnalysis 프레임 → YuvImage.compressToJpeg → 패킷 [프레임 크기(4B)][JPEG 데이터] 전송InputStream에서 Int 크기 읽고, 해당 크기만큼 바이트 → BitmapFactory → Bitmap 상태 업데이트 → Compose 렌더링CameraManager 해제 + 채널 closeonChannelClosed → 리소스 정리, 대기 상태 복귀| 기기 | 상태 | 설명 |
|---|---|---|
| Mobile | DISCONNECTED | 연결 없음 |
| Mobile | READY | 워치 노드 탐색 완료, 채널 미개설 |
| Mobile | CONNECTING | 채널 열기 중 (프리뷰 활성, 메인 프래그먼트 한정) |
| Mobile | CONNECTED | 프리뷰 전송 중 |
| Wear | WAITING | 연결 없음 |
| Wear | CONNECTING | 채널 열기 중 |
| Wear | CONNECTED | 프리뷰 수신 중 |