검색결과 리스트
Android 배터리에 해당되는 글 1건
- 2012.03.12 [Android] 배터리
글
배터리에 조사에 대한 샘플이다. 필요하면 찾아 쓰면 좋을 듯 하다.
public class ImageViewActivity extends Activity {
TextView mStatus;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mStatus = (TextView)findViewById(R.id.result);
}
public void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
filter.addAction(Intent.ACTION_BATTERY_LOW);
filter.addAction(Intent.ACTION_BATTERY_OKAY);
filter.addAction(Intent.ACTION_POWER_CONNECTED);
filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
registerReceiver(mBRBattery, filter);
}
public void onPause() {
super.onPause();
unregisterReceiver(mBRBattery);
}
BroadcastReceiver mBRBattery = new BroadcastReceiver() {
int Count = 0;
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Count++;
//배터리 충전 상태 변경, registerReceiver 메서드로 명시적으로 등록해야함
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
onBatteryChanged(intent);
}
if (action.equals(Intent.ACTION_BATTERY_LOW)) {
Toast.makeText(context, "배터리 위험 수준", Toast.LENGTH_LONG).show();
}
if (action.equals(Intent.ACTION_BATTERY_OKAY)) {
Toast.makeText(context, "배터리 양호", Toast.LENGTH_LONG).show();
}
if (action.equals(Intent.ACTION_POWER_CONNECTED)) {
Toast.makeText(context, "전원 연결됨", Toast.LENGTH_LONG).show();
}
if (action.equals(Intent.ACTION_POWER_DISCONNECTED)) {
Toast.makeText(context, "전원 분리됨", Toast.LENGTH_LONG).show();
}
}
public void onBatteryChanged(Intent intent) {
int plug, status, scale, level, ratio;
String sPlug = "";
String sStatus = "";
//배터리 존재 여부 확인
if (intent.getBooleanExtra(BatteryManager.EXTRA_PRESENT, false) == false){
mStatus.setText("배터리 없음");
return;
}
//외부 전원 연결되어 있는지 확인, 0이면 배터리 연결, BATTERY_PLUGGED_AC면 어댑터, USB면 USB에 연결 상태
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(BatteryManager.EXTRA_LEVEL, 0);//현재 충전 레벨
//EXTRA_HEALTH 성능 상태, EXTRA_ICON_SMALL 배터리 상태 아이콘 리소스 아이디
//EXTRA_TECHNOLOHY 배터리 방식 조사, EXTRA_TEMPERATURE 온도 조사, EXTRA_VOLTAGE 전압 조사
ratio = level * 100 / scale;
switch (plug) {
case BatteryManager.BATTERY_PLUGGED_AC:
sPlug = "AC";
break;
case BatteryManager.BATTERY_PLUGGED_USB:
sPlug = "USB";
break;
default:
sPlug = "Battery";
break;
}
switch (status) {
case BatteryManager.BATTERY_STATUS_CHARGING:
sStatus = "충전중";
break;
case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
sStatus = "충전중 아님";
break;
case BatteryManager.BATTERY_STATUS_DISCHARGING:
sStatus = "방전중";
break;
case BatteryManager.BATTERY_STATUS_FULL:
sStatus = "만충전";
break;
default:
case BatteryManager.BATTERY_STATUS_UNKNOWN:
sStatus = "알 수가 없어";
break;
}
String str = String.format("수신 회수:%d\n연결: %s\n상태:%s\n레벨:%d%%",
Count, sPlug, sStatus, ratio);
mStatus.setText(str);
}
};
}
RECENT COMMENT