프로그램 개발 중 USB접속 상태를 차단하기 위하여

브로드캐스트 리시버로 ACTION_BATTERY_CHANGED 메시지를 수신한 후

int nPlug = intent.getIntExtra("plugged", 0);

에서 BATTERY_PLUGGED_USB를 확인하려고 했는데,
이것이 옵티머스 Q에서는 이것이 제대로 동작하지 않는 것 같습니다.

2가지 상황이 있을 수 있는데,

첫번째는 아예 브로드캐스트 메시지가 전달되지 않았거나,

두번째는 인텐트에 "plugged" 정보가 전달되지 않았거나...


ACTION_BATTERY_CHANGED 메시지는 sticky메시지이기 때문에,
이 메시지가 전달되지 않았을 것이라고 생각되진 않습니다.


따라서 두번째 인텐트에 정보가 제대로 실려서 오지 않을 가능성이 큰 것 같습니다.
이게 LG sync 프로그램과도 연관되어 있을 가능성이 큰데, 기기가 없어서 테스트해보지는 못했습니다.


결국 현재로선 BATTERY_STATUS_CHARGING으로 대체하였는데, 
이게 제대로 동작할지는 조금더 확인해봐야할 듯 합니다.
문제는 이걸 사용하면 USB연결과 충전을 구분할 방법이 없다는 거네요...



* 참고로 안드로원(1.6)과 넥서스원(2.2)에서는 모두 BATTERY_PLUGGED_USB정보가 제대로 전달되었습니다.

안녕하세요~반갑습니다!!