Подтвердить что ты не робот

Моделирование разряженной батареи для iPhone

Я работаю над мобильной игрой, которая внезапно падает, когда отображается предупреждение о низком заряде батареи. Он отлично работает при низкой памяти, входящих вызовах и других сообщениях.

Его боль, чтобы протестировать и отладить это, поскольку я не могу найти симулятор терминала или iPhone для имитации этой ситуации, поэтому мне нужно немного зарядить свой телефон, запустить приложение, дождаться его утечки его мощности, и начать все заново.

Кто-нибудь знает, как создать реалистичную ошибку? Надеюсь, что-то, что не слишком напряжено для моей батареи iPhone.

4b9b3361

Ответ 1

К сожалению, нет хорошего способа имитировать среду с низким уровнем заряда батареи. Фактически вам, скорее всего, придется физически заряжать аккумулятор вашего устройства, пока он не окажется выше состояния "разряженной батареи", а затем отлаживает ваше приложение.

Чтобы узнать, что сказали другие:

  • Невозможно смоделировать уведомления о низком заряде батареи. Проект это @Bo. предоставляется не что иное, как расписание случайных UILocalNotifications. Это не совсем так, как просто показывая UIAlertView в вашем приложении.
  • Вы можете попробовать, что @Andrew R. сказал и использует частные методы, найденные в заголовке UIDevice. Но сомнительно, что вы точно подражаете эффектам реального с низким уровнем заряда аккумулятора.

Хотя вам больно ждать, пока вы на самом деле нажмете на устройство с низким уровнем заряда батареи, вы можете добавить в свое приложение какой-то код для разряжения батареи, чтобы помочь вам. Например, использование GPS может немного разрядить батарею.

Удачи.

Ответ 2

Вы пытались имитировать уведомления о низком заряде батареи? Кажется, есть проект, который делает это: https://github.com/MegaEduX/LowBattery

Ответ 3

В iOS есть способ имитировать "Low Battery"

Аккумуляторный мониторинг включен, установив для YES значение одиночного режима UIDevice:

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];

Ответ 4

Предполагая, что это только для целей тестирования, вы можете попробовать следующие частные методы UIDevice:

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

Вам нужно будет поэкспериментировать, чтобы увидеть, какие параметры они ожидают, или же они оказывают влияние вообще.