About power measurement and calibration
A major part of AccuBattery is using real measurements from the battery management system to track actual power usage, added in Android since 5.0 (Lollipop), but sadly, not all devices implement it correctly and some only return zero's when we ask for the electrical current.
Power measurement is not a new feature, we discovered its existence years ago in Android 2.1 (Eclair) on a Nexus One and HTC Desire, but as it isn't an often used feature, support for it isn't a top priority and is missing on a lot of devices from second tier OEMs.
Then there's the issue that the data returned doesn't follow the official API at all - it specified the unit as microampère and positive sign for charging, but only some HTC devices follows that standard. Samsung inverses the sign and returns data in milliampère (off by factor 1000), and all variants of these combinations are seen in the wild.
The calibration step in AccuBattery is used to detect if positive is charging or discharging and the unit of measurement. We take multiple samples to ensure consistency, and after we've seen enough, this is saved so you don't have to repeat it every time you start the app.
What happens if you can't calibrate
All numbers that depend on current will be set to zero, and in a future version, we'll hide these fields to avoid confusion. The battery health related feature also depends on measuring the charge, and without numbers, we can't estimate your battery's capacity.
The charge alarm, charge speed in % and power usage in % will work, but not much else.
Can't you fix this?
Sadly, no. It's often not even an hardware issue, we've had a report that an Galaxy S3 with Cyanogenmod works just fine, but S3's with the official firmware doesn't report any data. The only way to fix this is with a custom ROM, and as an app, we can't just replace your whole Android system with a different version.
And for devices that just lack the hardware to measure current, there's nothing anyone can do.