作者:朱克锋
邮箱:zhukefeng@iboxpay.com
转载请注明出处:http://blog.csdn.net/linux_zkf
@interface TestViewController : UIViewController
{
NSMutableString *sstr;
}
@property (retain) NSMutableString *sstr;
@end
@implementation TestViewController
@synthesize sstr;
- (void) printfStr: (NSString *) str, ...
{
va_list arglist;
if (!str) return;
va_start(arglist, str);
NSString *outstring = [[[NSString alloc] initWithFormat:str arguments:arglist] autorelease];
va_end(arglist);
[self.sstr appendString:outstring];
[self.sstr appendString:@"\n"];
//NSLog or 相关处理
}
- (void) checkBattery: (id) sender
{
NSArray *stateArray = [NSArray arrayWithObjects: @"unknown", @"not plugged", @"charging", @"full", nil];
self.sstr = [NSMutableString string];
[self printfStr:@"Battery level: %0.2f%", [[UIDevice currentDevice] batteryLevel] * 100];
[self printfStr:@"Battery state: %@", [stateArray objectAtIndex:[[UIDevice currentDevice] batteryState]]];
}
- (void) viewDidLoad
{
//一定要设置为YES
[[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.1f target:self selector:@selector(checkBattery:) userInfo:nil repeats:YES];
}