Android
-
Android WebView에서 이어폰 연결 상태 감지하기 (JS Bridge)Java-Kotlin/Android 2026. 2. 19. 13:12
1. Android WebView에서 직접 이어폰 연결 상태를 감지할 수 없나요?예. 안드로이드의 WebView에서 직접 안드로이드 기기에 오디오 기기를 꽂았다는 상태를 알 수 없습니다. 웹 표준(HTML5)만으로는 하드웨어 단의 연결 상태를 직접 알 수 없음.특히 일반 이어폰(3.5mm)과 달리 USB-C 타입 오디오 장치는 시스템에서 TYPE_USB_HEADSET으로 별도 관리됨.일반 이어폰을 꽂는 동작은 ACTION_HEADSET_PLUG으로 관리됨.이를 해결하기 위해 Android 네이티브 코드에서 감지하고 안드로이드 WebView(JS)로 브릿지를 통해 신호를 주는 전략이 필요함. 2. 구현저는 해당 기능을 구현 할 때 BroadcastReceiver와 AudioDeviceCallback 둘중 ..
-
Android 14(API 34)에서 USB Serial 장치 연결 시 권한에 의한 Crash 트러블슈팅Java-Kotlin/Android 2026. 2. 11. 23:29
2025.12.03 - [Java-Kotlin/Android] - Android에서 USB Serial 장치 연결 시 USB 권한 문제 해결기 Android에서 USB Serial 장치 연결 시 USB 권한 문제 해결기최근 안드로이드 프로젝트에서 POS장비에 USB Serial 포트 통신 기능을 구현하는 중에 예상치 못한 권한 문제를 마주쳤습니다.저는 이미 AndroidManifest.xml에 USB 관련 Permission을 다 줘놨는데도 권한 문parkstate.tistory.com 저는 이전에 Android에서 USB Serial 장치를 연결 한적이 있습니다. 해당 코드를 이용하여 RFID Reader를 잘 사용 하고 있었습니다. 그러나 키오스크 타겟 장비가 기존보다 좀 더 높은 Android 버..
-
Android DataStore 를 사용하여 파일에 간단한 정보 저장하기Java-Kotlin/Android 2026. 1. 14. 23:45
회사에서 제작하는 POS 프로그램의 정보(회사, 매장, 기기 번호)를 저장해 주어야 해서 Android에서 지원하는 두 개의 라이브러리를 비교해 보았다. SharedPreferences동기적으로 작동Atomic Read/Write 보장 안됨Key-Value 저장 지원파싱 에러 발생 시 RuntimeException Throw코드가 간단하여 러닝커브가 낮음DataStore(Jetpack)비동기적으로 작동Atomic Read/Write 보장 됨Key-Value, ProtoBuf(타입을 정의 및 직렬화 가능) 저장 지원오류시 IOException로 에러를 Throw코드가 SharedPreferences보다 복잡하여 러닝커브가 상대적으로 높음Kotlin Coroutine, Flow을 사용하도록 설계됨 고민해 본..
-
Android에서 USB Serial 장치 연결 시 USB 권한 문제 해결기Java-Kotlin/Android 2025. 12. 3. 23:20
최근 안드로이드 프로젝트에서 POS장비에 USB Serial 포트 통신 기능을 구현하는 중에 예상치 못한 권한 문제를 마주쳤습니다.저는 이미 AndroidManifest.xml에 USB 관련 Permission을 다 줘놨는데도 권한 문제를 만나게 되어 놀랐습니다.. 마주친 에러로그exception in UsbManager.openDevice java.lang.SecurityException: User has not given 10161/org.example.android.pos permission to access device /dev/bus/usb/001/004 at android.os.Parcel.createExceptionOrNull(Parcel.java:3011) at android.hardwar..