Nuke Olaf - Log Store
[Android] 안드로이드 - 배터리 상태변화 확인하기 본문
https://developer.android.com/training/monitoring-device-state/battery-monitoring?hl=ko
안드로이드 디벨로퍼 사이트에 따르면, BatteryManager 는 충전 상태가 포함된 고정 Intent에 모든 배터리 및 충전 세부정보를 브로드 캐스팅한다고 나와있다. 고정 인텐트는 Broadcast Receiver를 등록할 필요가 없다고 한다.
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
다음과 같이 registerReceiver 를 호출하여 receiver에 null을 전달하면, 현재 배터리 상태 인텐트가 반환된다고 한다.
흐음... 일단 내가 사용한 방법은 아래와 같다
public class PowerConnectionReceiver extends BroadcastReceiver {
private final String TAG = "PowerConnectionReceiver";
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_POWER_CONNECTED)) { // 충전기 연결 action 을 받은 경우
Log.d(TAG, "onReceive: action = " + intent.getAction());
Toast.makeText(context, "충전기가 연결되었습니다", Toast.LENGTH_LONG).show();
}else if(intent.getAction().equals(Intent.ACTION_POWER_DISCONNECTED)) { // 충전기 해제 action 을 받은 경우
Log.d(TAG, "onReceive: action = " + intent.getAction());
Toast.makeText(context, "충전기가 해제되었습니다", Toast.LENGTH_LONG).show();
}
}
}
MainActivity onCreate() 메서드에 PowerConnectionReceiver 호출
// PowerConnectionReceiver 객체 생성
powerConnectionReceiver = new PowerConnectionReceiver();
filter = new IntentFilter();
filter.addAction(Intent.ACTION_POWER_CONNECTED);
filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
registerReceiver(powerConnectionReceiver, filter);
onPause() 와 onResume() 에 리시버 등록 해제 및 등록
manifest.xml 에 action 등록
<receiver
android:name=".PowerConnectionReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
'Android' 카테고리의 다른 글
[Android] 안드로이드 - 컨텐트 리졸버 (0) | 2019.11.26 |
---|---|
[Android] 안드로이드 - content provider 공부 (0) | 2019.11.26 |
[Android] 안드로이드 - 위험한 권한일 경우 런타임 권한 요청 (0) | 2019.11.25 |
[Android] 안드로이드 - SMS 메시지 받는 브로드캐스트 리시버 구현하기 (0) | 2019.11.25 |
[Android] 안드로이드 - 로그인화면 구현하며 참고한 예제들 (0) | 2019.11.24 |