29

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

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

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

+0

хороший вопрос. У меня была аналогичная проблема –

+0

Когда она рушится? Когда вы получаете «предупреждения о низком заряде батареи» или что-то еще? –

+0

Когда появляется синее предупреждение, приложение падает. Предупреждение о разряде батареи остается. –

ответ

10

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

Для того, чтобы решить, что другие сказали:

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

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

Удачи.

1

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

+0

К сожалению, это действительно не делает реалистичный вывод для меня ... Кажется, он просто имитирует предупреждение и не делает мое приложение аварийным, и это все еще происходит на «реальном» iphone низкий на мощности. –

-2

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

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

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

+1

, в то время как функция '_setBatteryLevel' доступна через категорию, и в то время как в этой категории вызов' [self performSelector: @selector (_setBatteryLevel :) withObject: [NSNumber numberWithFloat: 0.01]] 'будет вызывать значение, возвращаемое' [[UIDevice currentDevice] batteryLevel] ', чтобы вернуть отправленное вами значение, оно не будет вызывать предупреждение с низкой памятью. –

+0

@ john.k.doe попробуйте настроить его на 25, 20? Я слышал, что предупреждение о разряде батареи срабатывает с интервалом 5%, и предупреждение отображается только при достижении предела уровня – onmyway133

0

В прошивкой есть способ имитации «Low Battery»

Контроль батареи включается установкой в ​​ДА свойство 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]; 
Смежные вопросы