28 votes

Simuler une batterie faible pour les iPhones

Je travaille sur un jeu mobile qui semble se planter lorsque l'alerte de batterie faible s'affiche. Il fonctionne bien en cas de mémoire faible, d'appels entrants et d'autres messages.

Il est difficile de tester et de déboguer cette situation, car je ne trouve aucun moyen de simuler cette situation dans un terminal ou un simulateur d'iPhone. Je dois donc charger un peu mon téléphone, lancer l'application, attendre qu'elle se vide de son énergie et recommencer.

Quelqu'un connaît-il un moyen de produire cette erreur de manière réaliste ? En espérant qu'il s'agisse d'un moyen qui ne soit pas trop stressant pour la batterie de mon iPhone.

8voto

Michael Frederick Points 12700

Malheureusement, il n'existe pas de bon moyen de simuler un environnement de batterie faible. Vous devrez très probablement charger physiquement la batterie de votre appareil jusqu'à ce qu'elle soit juste au-dessus de l'état de "batterie faible", puis déboguer votre application.

Pour répondre à ce que d'autres ont dit :

  1. Il n'y a aucun moyen de simuler des notifications de batterie faible. Le projet que @Bo. a fourni ne fait rien de plus que de programmer des notifications aléatoires. UILocalNotifications . Ce n'est pas si différent que de simplement d'afficher un UIAlertView dans votre application.
  2. Vous pourriez essayer ce que @Andrew R. et utiliser les méthodes privées qui se trouvent dans la section En-tête UIDevice . Mais il est douteux que vous puissiez imiter exactement les effets d'un véritable environnement de batterie faible.

Bien qu'il soit pénible de devoir attendre que votre appareil atteigne effectivement l'état de batterie faible, vous pouvez ajouter à votre application un code qui consomme de la batterie pour vous aider. F

Bonne chance.

1voto

Bo. Points 2041

Avez-vous essayé de simuler les notifications de batterie faible ? Il semble y avoir un projet qui fait cela : https://github.com/MegaEduX/LowBattery

-1voto

Andrew R. Points 707

En supposant qu'il s'agit uniquement d'un essai, vous pourriez donner le privé suivant UIDevice à essayer :

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

Vous devrez expérimenter pour voir quels paramètres ils attendent, ou s'ils ont un impact du tout.

-2voto

13havik Points 399

Dans iOS, il existe un moyen de simuler une "batterie faible".

La surveillance de la batterie est activée en donnant la valeur YES à une propriété du singleton UIDevice :

UIDevice *device = [UIDevice currentDevice];
device.batteryMonitoringEnabled = YES;

iOS fournit deux types d'événements de surveillance de la batterie, l'un pour les changements d'état (par exemple, en charge, débranché, complètement chargé) et l'autre pour les mises à jour lorsque le niveau de charge de la batterie change. Comme dans le cas de la surveillance de proximité, vous enregistrez des callbacks pour recevoir des notifications :

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@"UIDeviceBatteryLevelDidChangeNotification" object:device];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryChanged:) name:@"UIDeviceBatteryStateDidChangeNotification" object:device];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X