我正在开发一款手机游戏,当显示低电量警报时,它会出现崩溃。它适用于低内存,来电和其他消息。
测试和调试这个很痛苦,因为我找不到终端或iPhone模拟器模拟这种情况的方法,所以我必须稍微给手机充电,启动应用程序,等待它耗尽电量,并重新开始。
有没有人知道以实际方式产生此错误的方法?希望我的iPhone电池没有太大的压力。
答案 0 :(得分:10)
不幸的是,没有好的方法来模拟低电池环境。您实际上很可能需要对设备的电池进行物理充电,直到它高于“电池电量不足”状态,然后调试您的应用程序。
解决别人所说的话:
UILocalNotifications
。它与众不同并不是那么多
在您的应用中显示UIAlertView。 虽然等待设备实际达到低电量状态是一件痛苦的事,但您可以在应用中添加一些耗尽电量的代码来帮助您。例如,使用GPS可能会更快地耗尽电池。
祝你好运。答案 1 :(得分:1)
您是否尝试过模拟低电量通知?似乎有一个项目可以做到这一点:https://github.com/MegaEduX/LowBattery
答案 2 :(得分:0)
在iOS中,可以模拟" Low Battery"
通过将UIDevice单例的属性设置为YES来启用电池监视:
UIDevice *device = [UIDevice currentDevice];
device.batteryMonitoringEnabled = YES;
iOS提供两种类型的电池监控事件,一种用于状态变化(例如,充电,未插电,完全充电),另一种用于在电池电量变化时更新。与接近监控的情况一样,您注册回调以接收通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@"UIDeviceBatteryLevelDidChangeNotification" object:device];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@"UIDeviceBatteryStateDidChangeNotification" object:device];
答案 3 :(得分:-2)
假设这仅用于测试目的,您可以尝试使用以下私有UIDevice
方法:
-(void)_setBatteryState:(int)state;
-(void)_setBatteryLevel:(float)level;
您必须尝试查看他们期望的参数,或者它们是否会产生影响。