转自:http://my.oschina.net/u/936286/blog/132943
1,电池级别和电池状态监听通知
[[UIDevice currentDevice] setBatteryMonitoringEnabled :YES ];
[[NSNotificationCenter defaultCenter] addObserver :self selector :@selector (checkBattery :) name :UIDeviceBatteryStateDidChangeNotification object :nil ];
[[NSNotificationCenter defaultCenter] addObserver :self selector :@selector (checkBattery :) name :UIDeviceBatteryLevelDidChangeNotification object :nil ];
2 ,电池的四种状态:
NSArray *stateArray = [NSArray arrayWithObjects: @"Battery state is Unknown" , @"Battery is not plugged into a charging source" , @"Battery is charging" , @"Battery state is full" , nil ];
3,[[UIDevice currentDevice] batteryLevel ] * 100 ];
[[UIDevice currentDevice] batteryState];
完整代码:
- (void ) doLog: (NSString *) formatstring, ...
{
va_list arglist;
if (!formatstring) return ;
va_start(arglist, formatstring);
NSString *outstring = [[[NSString alloc] initWithFormat:formatstring arguments:arglist] autorelease];
va_end(arglist);
[self .log appendString:outstring];
[self .log appendString:@"\n" ];
self .textView.text = self .log;
}
- (void ) checkBattery: (id ) sender
{
NSArray *stateArray = [NSArray arrayWithObjects: @"Battery state is Unknown" , @"Battery is not plugged into a charging source" , @"Battery is charging" , @"Battery state is full" , nil ];
self .log = [NSMutableString string];
[self doLog:@"Battery level: %0.2f%" , [[UIDevice currentDevice] batteryLevel] * 100 ];
[self doLog:@"Battery state: %@" , [stateArray objectAtIndex:[[UIDevice currentDevice] batteryState]]];
}
- (void ) viewDidLoad
{
self .navigationController.navigationBar.tintColor = COOKBOOK_PURPLE_COLOR;
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES ];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (checkBattery:) name:UIDeviceBatteryStateDidChangeNotification object:nil ];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (checkBattery:) name:UIDeviceBatteryLevelDidChangeNotification object:nil ];
[NSTimer scheduledTimerWithTimeInterval:0.1 f target:self selector:@selector (checkBattery:) userInfo:nil repeats:YES ];
}