2014년 3월 4일 화요일

[ANDROID CODE / 안드로이드] android Battery Status 안드로이드 Battery 상태 감시

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)+"%");


잘 나오는걸 확인 할 수 있다.


댓글 없음:

댓글 쓰기