- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Link
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[안드로이드] Battery 상태 감시하는 방법 본문
오늘은 베터리의 상태를 감시 또는 감지 하는 방법에 대해 알아보겠습니다.
<베터리 관련 Action>
액션 | 설명 |
ACTION_BATTERY_CHANGED |
배터리 충전상태 변경
( 매니페스트로는 불가능, registerReceiver로 등록해야 한다. ) |
ACTION_BATTERY_LOW | 배터리 상태가 위험수준으로 낮아짐 |
ACTION_BATTERY_OKAY | 배터리 상태가 위험수준에서 양호한 상태로 전환 |
ACTION_POWER_CONNECTED | 외부 전원이 연결 |
ACTION_POWER_DISCONNECTED | 외부 전원이 분리 |
< 베터리 상태에 대한 intent extra 정보 >
상태 | 설명 |
EXTRA_PRESENT | 배터리가 존재하는지 조사 |
EXTRA_PLUGGED |
외부전원에 연결되어 있는지 조사.
0이면 베터리가 있고, 그 외의 경우 다른 전원 연결
BATTERY_PLUGGED_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 | 전압 조사 |
<example code>
public void onResume(){
IntentFilter filter = new IntentFiler();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
filter.addAction(Intent.ACTION_BETTERY_LOW);
filter.addAction(Intent.ACTION_BATTERY_OKAY);
filter.addAction(Intent.ACTION_POWER_CONNECTED);
filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
registerReceiver(mBRBattery, filter);
}
public void onPuase(){
super.onPause();
unregisterReceiver(mBRBattery);
}
BroadcastReceiver mBRBattery = new BroadcastReceiver(){
int count = 0;
public void onReceive (Context context, Intent intent){
String action = intent.getAction();
count++;
if (action.equals(Intent.ACTION_BATTERY_CHANGED)){
onBatteryChanged(intent);
}
if(action.equals(Intent.ACTION_BATTERY_LOW)){
// To do
}
if (action.equals(Intent.ACTION_BATTRY_OKAY)){
// To do
}
if (action.equals(Intent.ACTION_BATTRY_CONNECTED)){
// To do
}
if (action.equals(Intent.ACTION_BATTRY_DISCONNECTED)){
// To do
}
}
}
public void onBatteryChanged(Intent intent){
int plug, status, scale, level, ratio;
String sPlug = "";
String sStatus = "";
if (intent.getBooleanExtra(BatteryManager.EXTRA_PESENT, false) == false){
mStatus.setText("no battery");
return;
}
plug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0);
status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN);
scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100);
level = intent.getIntExtra(BatterManager.EXTRA_LEVEL, 0);
ratio = level * 100 / scale;
switch (plug){
case BatteryManager.BATTERY_PLUGGED_AC:
sPlug = "AC";
break;
case BatterManager.BATTERY+PLUGGED_USB:
sPlug = "USB";
break;
default:
sPlug = "BATTERY";
break;
}
switch (status){
case BatteryManager.BATTERY_STATUS_CHARGING:
sStatus = "Charging";
break;
case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
sStatus = "not charging";
break;
case BatteryManager.BATTERY_STATUS_DISCHARGING:
sStatus = "discharging";
break;
case BatteryManager.BATTERY_STATUS_FULL:
sStatus = "fully charged";
break;
default:
case BatteryManager.BATTERY_STATUS_UNKNOWN:
sStatus = "Unknwon status";
break;
}
}
< 에뮬레이터에서 베터리 상태 조정하기 >
telnet localhost <emulator num>
명령 | 설명 |
power capacity n | 배터리 레벨 변경 n = 0~100 |
power ac on/off | 외부 전원을 연결 또는 해제 |
power status 상태 | 배터리 상태 변경. 지정 가능 상태는 charging, discharging, not-charging, full, unknown |
power health | 배터리 성능 조사 |
power present true/false | 배터리 탈부착 |
power display | 배터리 현재 상태 조사 |
'★─Programing > ☆─Android' 카테고리의 다른 글
[안드로이드] WebView 높이 wrap_content 주는 방법 (0) | 2013.08.16 |
---|---|
[안드로이드] Listview 의 overScrollEffect 설정,제거하기 (0) | 2013.08.16 |
[안드로이드] 안드로이드 앱 초보 개발자가 범하는 10가지 실수는? (0) | 2013.06.25 |
[안드로이드] [번역] 안드로이드 2.0 Service API 의 변화 -2- (0) | 2013.06.24 |
[안드로이드] [번역] 안드로이드 2.0 Service API 의 변화 -1- (0) | 2013.06.24 |
Comments