Battery Doctor says my battery is 50% charged while Android says 23%:
Is there any reason why? I use a 4200mah Extended Battery on Samsung Galaxy SIII with Android 4.1.2.
There are two sources for reading the battery capacity
From the battery files
From the ROM
I learnt this when I saw a similar but smaller discrepancy on my new phone using 3c Toolbox and the developer clarified this on mail. To quote from 3C Toolbox developer mail
In Android, one can get the stock hard-coded battery capacity from battery profiles, an hidden API in Android. That’s the one of the 2 sources the app uses.
The other source is in the kernel, usually under /sys/devices/power_supply/battery/charge_full_design
On my device path is different. To know the path on your device, from 3C Toolbox, tap request support from Help and support menu. An email will be generated to the developer having information about your device, including battery_info.txt. This file amongst other things specifies the path of second source
Since you are using an extended battery, I would guess that the app is reading from the ROM and Android from the battery files (original battery is 2100 mAh and extended battery is 4200 mAh and the battery percentage readings are nearly half).
This is the only explanation I can think of
Edit: For more details , please see Where are the battery capacity files located