Android에서 battery status Action 사용법
Android에서 앱을 만들다 보면 Battery의 상태가 필요한 경우가 생긴다.
Battery 관련 Action 은 다음과 같다.
=================================================================================
ACTION_BATTERY_CHANGED => 배터리 충전 상태 변경 (Receiver로 등록)
ACTION_BATTERY_LOW => 배터리 상태가 위험수준까지 전환
ACTION_BATTERY_OKAY => 배터리가 양호한 상태로 전환
ACTION_POWER_CONNECTION => 외부 전원 연결
ACTION_POWER_DISCONNECTED => 외부 전원 분리
=================================================================================
Battery 상태에 대한 Extra 정보
=================================================================================
EXTRA_PRESENT => 배터리 존재 유무
EXTRA_PLUGGED => 외부 전원 연결 상태
- 0 이면 베터리 그외는 다른 전원
- BATTERY_PLUGGED_AC -> AC전원 인가
- BATTERY_PLUGGED_USB -> USB 연결
EXTRA_STATUS
-BATTERY_STATUS_CHARGING : 충전중
-BATTERY_STATUS_DISCHARGING : 방전중
-BATTERY_STATUS_FULL : 완충
-BATTERY_STATUS_NOT_CHARGING : 충전하고 있지 않음
-BATTERY_STATUS_UNKNOWN : 상태 모름
EXTRA_SCALE => 베터리 레벨 최대량
EXTRA_LEVEL => 현재 충전 레벨
EXTRA_HEALTH => 베터리의 성능 상태 조사
EXTRA_ICON_SMALL => 베터리 아이콘 리소스 ID
EXTRA_TECHNOLOGY => 베터리 방식 조사
EXTRA_TEMPERATURE => 베터리 온도
EXTRA_VOLTAGE => 베터리 전압
=================================================================================
Battery를 이용해서 배터리 잔량 충전상태 확인
우선 IntentFilter와 BrodcastReceiver가 빌요하다.
IntentFilter 의 Source
IntentFilter battery_filter = new IntentFilter();
battery_filter.Action(Intent.ACTION_BATTERY_CHANGED);
battery_filter.Action(Intent.ACTION_BATTERY_LOW);
battery_filter.Action(Intent.ACTION_POWER_CONNETED);
battery_filter.Action(Intent.ACTION_POWER_DISCONNECTED);
registerReceiver(battery_receiver, battery_filter);
위와 같이 IntentFilter를 설정한다. IntnetFilter는 만들고 있는 앱에 따라서 결정해서 사용하면
된다.
BroadcastReceiver battery_receiver = new BroadcastReveiver(){
@Override
public void onReceive(Context context, Intent intent){
String action = intent.getAction();
if(action.equals(Intent.ACTION_BATTERY_CHANGED){
}
if(action.equals(Intent.ACTION_BATTERY_LOW){
}
if(action.equals(Intent.ACTION_POWER_CONNETED){
}
if(action.equals(Intent.ACTION_POWER_DISCONNETED){
}
}
};
이렇게 사용하면 된다.
BATTERY 잔량 구하는 법
ACTION_BATTERY_CHANGED에 다음과 같은 코드를 넣으면 된다.
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
int scale = intnet.getIntExtra(BatteryManager.EXTRA_SCALE, 100);
int ratio = (level*100)/scale;
Sysetm.out.println(String.valueOf(ratio)+"%");
잘 나오는걸 확인 할 수 있다.
댓글 없음:
댓글 쓰기