它可能会帮助你尝试这个.....
- (void)viewDidLoad
{
// Enable monitoring of battery status
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
// Print current status
[self batteryStatus];
// Request to be notified when battery charge or state changes
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryStatus) name:UIDeviceBatteryLevelDidChangeNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryStatus) name:UIDeviceBatteryStateDidChangeNotification object:nil];
}
- (void)batteryStatus
{
NSArray *batteryStatus = [NSArray arrayWithObjects:
@"Battery status is unknown.",
@"Battery is in use (discharging).",
@"Battery is charging.",
@"Battery is fully charged.", nil];
if ([[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateUnknown)
{
NSLog(@"%@", [batteryStatus objectAtIndex:0]);
}
else
{
NSString *msg = [NSString stringWithFormat:
@"Battery charge level: %0.2f%%\n%@", [[UIDevice currentDevice] batteryLevel] * 100,
[batteryStatus objectAtIndex:[[UIDevice currentDevice] batteryState]] ];
NSLog(@"%@", msg);
}
}
你的答案是……
您正在检查不同的枚举键值
typedef NS_ENUM(NSInteger, UIDeviceBatteryState) {
UIDeviceBatteryStateUnknown,
UIDeviceBatteryStateUnplugged, // on battery, discharging
UIDeviceBatteryStateCharging, // plugged in, less than 100%
UIDeviceBatteryStateFull, // plugged in, at 100%
}; // available in iPhone 3.0
像这样更改您的代码它将起作用
[[UIDevice currentDevice]setBatteryMonitoringEnabled:YES];
int i=[[UIDevice currentDevice] batteryState];
switch (i)
{
case UIDeviceBatteryStateUnplugged:
{
NSLog(@"UnpluggedKey");
break;
}
case UIDeviceBatteryStateCharging:
{
NSLog(@"ChargingKey");
break;
}
case UIDeviceBatteryStateFull:
{
NSLog(@"FullKey");
break;
}
default:
{
NSLog(@"UnknownKey");
break;
}
}
NSLog(@"Battery Status is :%d",i);
我希望它会帮助你