이전 글도 비슷한 내용이 있습니다만 재차 질문을 드려봅니다.
http://www.androidpub.com/846144
현재 제가 분석해본 바로는
-------------------------------------- 코딩부분
public String onPlugChanged(Intent intent, Context context) {
int plug;
String sPlug = "";
plug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -777);
switch (plug) {
case BatteryManager.BATTERY_PLUGGED_AC:
sPlug = "AC";
break;
case BatteryManager.BATTERY_PLUGGED_USB:
sPlug = "USB";
break;
default:
sPlug = "Battery";
break;
}
return sPlug;
}
----------------------------------------------------------
AC 전원에서 Battery로 변경될시에는 바로 전환이 됩니다.
하지만
USB에서 Battery로 변경될 시에는 바로 전환이 되는것이 아니라 USB에서 전원AC 그리고 다시 배터리로 갑니다.
문제는 USB를 빠르게 연결을 빼버리면 USB에서 AC로가고 여기서 멈추어버립니다. 단, 천천히 뺏을 경우에는 다시 배터리로
잘 인식됩니다. 현재 마켓에 나와있는 대부분의 어플들의 경우 제 스마트폰 (SK-S100 리엑션폰)으로 테스트시에 모두 동일하게
오류(잘못된 정보)로 메세지가 뜹니다. 즉, 이미 배터리로 동작하는데 AC연결 충전중 이라고 뜨는것이죠....
(배터리 용량이 변하면 다시 Intent.ACTION_BATTERY_CHANGED가 호출되서 정상으로 돌아오긴합니다만, 그 사이의 변경되지
않은 메세지는 잘못된 정보로 사용자를 짜증나게 할수있겠더군요, 저만그런가요 ㅎㅎ..)
제 핸드폰 하드웨어만의 문제인지 아닌지도 궁금하기도하고,
왜 USB에서 배터리로 변경될시에 2번이나 Intent.ACTION_BATTERY_CHANGED 이 호출되는지도 궁금해지네요