1. 배터리 모니터링 시작하기.
Source Code[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
배터리는 상태(batteryState) 의 변경사항으로 아래 4가지 상태 값을 가진다.
typedef enum { UIDeviceBatteryStateUnknown, UIDeviceBatteryStateUnplugged, UIDeviceBatteryStateCharging, UIDeviceBatteryStateFull, } UIDeviceBatteryState;
- 알수 없는 상태 (Unknown) : Enabled 가 되어 있지 않는 상태
- 전원에 연결되어 있지 않는 상태 (not plugged)
- 충전 중인 상태 (charging)
- 완전 충전 상태 (full)
배터리의 레벨(batteryLevel) 은 0.0~ 1.0 사이의 값을 가진다.
2. 배터리 Level과 State변경 될 때, Notification받기
알림 추가를 아래와 같이 하여서, 특정 변경이 되면 특정 블록을 실행하게 한다.
source code
[[NSNotificationCenter defaultCenter] addObserverForName:UIDeviceBatteryStateDidChangeNotification object:Nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { NSLog(@"Battery State Change"); //Show Battery State }]; [[NSNotificationCenter defaultCenter] addObserverForName:UIDeviceBatteryLevelDidChangeNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { NSLog(@"Battery Level Change"); //Show Battery Level }];
3. 정보 읽어 오기
배터리의 state와 level은 아래와 같이 읽어 올 수 있다.
source code
[UIDevice currentDevice].batteryState; [UIDevice currentDevice].batteryLevel; // 0.0f - 1.0f
4. 그럼, 이것을 어디에서 사용할 수 있는가?
특정 연산을 시작하거나, 데이터를 업로드할 때, 전원이 연결되어 있는지, level이 특정 이상인지를 체크해서 사용자에게 연결하거나, 업로드를 못하도록 할 수 있다.
사용자들이 전원이 없는 상태에서 무리하게 실행하는 것을 막을 수 있는 것이다.
댓글 없음:
댓글 쓰기