The android.hardware.GeomagneticField class has a method getDeclination which we can use to find true north. All examples I've seen on StackOverFlow and other sites add this value to the magnetic north to find the true north, like this:
True north = Magnetic North + Declination
But a post in this question suggests this may be wrong: Using orientation sensor to point towards a specific location
Unfortunately, no-one has commented or voted on the post.
The Android documentation says that at positive value "means the magnetic field is rotated east that much from true north". And this page has a few figures which shows the same: "Positive declination - magnetic north is east of true north". In other words, declination is defined as this:
Declination = Magnetic north - True North
Rearranged to find true north based on magnetic north:
True north = Magnetic north - Declination
So, it is correct to add or subtract the declination? And if it is correct to add it, why?