2

I need to get battery consumption details for my app.
I have used instruments for tracking and i am getting energy usage level as 1/20.
What is this 1/20?

Eric Aya
  • 69,473
  • 35
  • 181
  • 253
samad5353
  • 381
  • 1
  • 5
  • 18

1 Answers1

1
  1. Shortly :

    UIDevice *Device = [UIDevice currentDevice];
    [Device setBatteryMonitoringEnabled:YES];
    
     int state = [Device batteryState];
    NSLog(@"Now the status: %d",state);
     double batLeft = (float)[Device batteryLevel] * 100;
      NSLog(@"Charge left: %ld", batLeft);
    
  2. The API allows you to register to receive notifications for changes to the battery level. It only reports a change at 5% increments up or down, but you can use a timer and measure the time between two changes (or initial battery level and first change). Here's how you register for the notifications:

       // Use this call to get the current battery level as a float
      // [[UIDevice currentDevice] batteryLevel]
    
       [[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
    
      [[NSNotificationCenter defaultCenter] addObserver:self
                                        selector:@selector(batteryStateDidChange:)
                                         name:UIDeviceBatteryStateDidChangeNotification
                                       object:nil];
    
       [[NSNotificationCenter defaultCenter] addObserver:self
                                     selector:@selector(batteryLevelDidChange:)
                                         name:UIDeviceBatteryLevelDidChangeNotification
                                       object:nil];
    

The first notification tells you the current state, e.g. unplugged, charging, or full. The second will get triggered whenever a 5% increment is reached.

Seems to me that if all you're given is change notifications at 5% changes up or down, accuracy is not something you can calculate very well or quickly. A 5% change could take a very long time if the device isn't doing anything.

Maybe you can monitor [[UIDevice currentDevice] batteryLevel] with a timer, however, while I haven't tried it I think it only gets updated at this same 5% increment.

From: iphone: Calculating battery life

  1. Here is a good example : http://blog.coriolis.ch/2009/02/14/reading-the-battery-level-programmatically/
Community
  • 1
  • 1
Jamshed Alam
  • 12,424
  • 5
  • 26
  • 49
  • 3
    I am not asking about battery level of my phone. I want to calculate my battery consumption while users using my app on iPhone – samad5353 Oct 17 '16 at 12:46