안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
UI라는 클래스가 있습니다.
그 클래스에서 아래와 같이 코드가 구현 되어 있습니다.
public class ui extends ListActivity {
public void getBattery(){
CBatteryInfo battery = new CBatteryInfo();
ret = battery.update();
if(ret == 0)
strRet = battery.strRet;
}
}Battery 정보를 얻기 위해서
BatteryInfo class를 선언Activity를 상속 받았습니다.(별도의 UI는 없습니다.)
그 안에 Battery 정보를 얻기 위한 메소드를 선언했습니다.
class CBatteryInfo extends Activity implements IInformation{
String strRet = null;
public String getBatteryInfo(){
Intent bat;
String batteryLevel="";
bat = registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
batteryLevel= bat.getIntExtra("level", -1)+"%";
}
}위 두 코드를 실행하면
bat = registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
이 부분에서 문제가 발생합니다.
bat 값이 null point 예외 에러 문제가 발생합니다.
그래서 다른 프로젝트에서 배터리 정보 얻는 부분을 테스트 하면 정상적으로 동작을 하더라구요..
혹시 클래스 메소드 간 처리를 제가 잘 못 한 건가요?
아니면 BatteryInfo 클래스에 대해서 잘 못 사용 하는 건가요?
혹시 해결 방법 아시는 분 계시면 힌트 좀 부탁 드립니다.
전에도 글을 남기긴 했지만 답변이 없어서 이전 글은 삭제하였습니다.
2010.07.28 15:49:14
자답입니다.
UI클래스에서는
CBatteryInfo battery = new CBatteryInfo(this);
같이 생성하고
CBatteryInfo 클래스는 아래와 같이 하면 됩니다.
public Context mParentContext;
public CBatteryInfo(Context context)
{
mParentContext = context;
}
public string getBatteryInfo(){
bat = mParentContext.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}



