Моделирование разряженной батареи для iPhone
Я работаю над мобильной игрой, которая внезапно падает, когда отображается предупреждение о низком заряде батареи. Он отлично работает при низкой памяти, входящих вызовах и других сообщениях.
Его боль, чтобы протестировать и отладить это, поскольку я не могу найти симулятор терминала или iPhone для имитации этой ситуации, поэтому мне нужно немного зарядить свой телефон, запустить приложение, дождаться его утечки его мощности, и начать все заново.
Кто-нибудь знает, как создать реалистичную ошибку? Надеюсь, что-то, что не слишком напряжено для моей батареи iPhone.
Ответы
Ответ 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;
Вам нужно будет поэкспериментировать, чтобы увидеть, какие параметры они ожидают, или же они оказывают влияние вообще.