When the Active Input Handling is set to Input System Package (New), and I build and run to my Android device, the Input.compass.TrueHeading always returns 0.
I was able to work around this by setting the Active Input Handling to Both, but this flags a warning that it is not supported on Android.
“PlayerSettings->Active Input Handling is set to Both, this is unsupported on Android and might cause issues with input and application performance. Please choose only one active input handling. Ignore and continue? (This dialog won’t appear again in this Editor session if you’ll choose Yes)”
This is not ideal. I saw a previous post on how Input.location was updated to circumvent this problem. It seems like Input.compass never got the same treatment? Or if it did, it is broken.
The documentation also indicates there is no equivalent in the New Input System.
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.11/manual/Migration.html