배터리 조회가 제 마음대로 되지 않습니다.
class XxxImpl {
private Context ctx;
public XxxImpl(Context ctx) {
this.ctx = ctx;
}
public void xxx() {
getBatteryLvl();
Toast.makeText(ctx, "2222", Toast.LENGTH_SHORT).show();
}
private int batteryLvl;
private void getBatteryLvl() {
BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
if(rawlevel >= 0 && scale >= 0) {
batteryLvl = (rawlevel*100)/scale;
}
Toast.makeText(ctx, "1111", Toast.LENGTH_SHORT).show();
} /* end if() */
} /* end onReceive() */
};
ctx.registerReceiver(mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
}
xxx() 메소드를 실행하면 토스트 메시지가 2222 표시후 1111이 표시 됩니다.
batteryLvl값은 0으로 나오구요.
어떻게 안 될까요?
(모토로이에 연결된)LogCat 정보를 보면
pid tag message
7675 AtCBC level: 100
7675 AtCBC scale: 100
7675 CIND the Battery info is level:100 scale: 100
위정보를 조회 할 수 있는 메소드는 없을까요?