【问题标题】:Simulating low battery for iPhones模拟 iPhone 的低电量
【发布时间】:2012-06-17 06:35:55
【问题描述】:

我正在开发一款手机游戏,当显示低电量警报时,它似乎崩溃了。它适用于内存不足、来电和其他消息。

测试和调试很痛苦,因为我找不到模拟这种情况的终端或 iPhone 模拟器方法,所以我必须给手机充电一点,启动应用程序,等待它耗尽电量,然后重新开始。

有谁知道以现实方式产生此错误的方法?希望这不会对我的 iPhone 电池造成太大压力。

【问题讨论】:

  • 好问题。我也遇到过类似的问题
  • 什么时候崩溃?当您收到“低电量警报”或其他信息时?
  • 当蓝色警报出现时,应用程序崩溃了。电池警告一直存在。
  • 如果显示任何其他系统警报,您的应用程序是否会崩溃?例如蜂窝数据警告等,或者它实际上只是低电量警报?
  • 没什么,不,它不会在收到短信、电话或手机数据警告时崩溃……遗憾的是。 :P

标签: iphone objective-c ios-simulator simulation power-management


【解决方案1】:

您是否尝试过模拟低电量通知?似乎有一个项目可以做到这一点:https://github.com/MegaEduX/LowBattery

【讨论】:

  • 遗憾的是,这似乎并没有为我提供真实的输出......它似乎只是在模仿警告,并且不会让我的应用程序崩溃,而且这仍然发生在“真正的”iphone上电量不足。
【解决方案2】:

假设这仅用于测试目的,您可以尝试以下私有 UIDevice 方法:

-(void)_setBatteryState:(int)state;
-(void)_setBatteryLevel:(float)level;

您必须进行试验,看看他们期望什么参数,或者它们是否有影响。

【讨论】:

  • 虽然_setBatteryLevel函数可以通过category使用,并且在那个category中,调用[self performSelector:@selector(_setBatteryLevel:) withObject:[NSNumber numberWithFloat:0.01]]会导致[[UIDevice currentDevice] batteryLevel]返回的值返回你发送的值,它不会触发内存不足警告。
  • @john.k.doe 您是否尝试将其设置为 25、20?我听说低电量警告会以 5% 的间隔触发,并且只有在达到电平限制时才会显示警告
【解决方案3】:

很遗憾,没有模拟低电量环境的好方法。实际上,您很可能需要对设备的电池进行物理充电,直到它刚好超过“低电量”状态,然后调试您的应用程序。

解决其他人所说的话:

  1. 无法模拟低电量通知。该项目 那个@Bo。提供的只是随机安排 UILocalNotifications。这并没有太大的不同 在您的应用中显示 UIAlertView。
  2. 你可以试试@Andrew R. 说并使用在UIDevice header 中找到的私有方法。 但是你是否会准确地模仿真实的效果是值得怀疑的 低电量环境。

虽然必须等待您的设备真正进入低电量状态很痛苦,但您可以在应用中添加一些耗电代码来帮助您。例如,使用 GPS 可能会更快耗尽电池电量。

祝你好运。

【讨论】:

    【解决方案4】:

    在 iOS 中可以模拟“低电量”

    通过将 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];
    

    【讨论】:

    • 这不会模拟低电量,它允许应用检查电池电量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多