AndroidNativeCompass.cs 879 B

1234567891011121314151617181920212223242526272829
  1. #pragma warning disable
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. #pragma warning enable
  6. namespace ARLocation
  7. {
  8. public class AndroidNativeCompass
  9. {
  10. #if PLATFORM_ANDROID
  11. private readonly AndroidJavaObject _nativeHeading;
  12. public AndroidNativeCompass(float alpha = 0.1f)
  13. {
  14. AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
  15. AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
  16. _nativeHeading = new AndroidJavaObject("com.dmbfm.magneticdeclination.NativeHeading", activity, alpha);
  17. }
  18. public float GetMagneticHeading()
  19. {
  20. return _nativeHeading.Call<float>("GetCurrentHeading");
  21. }
  22. #else
  23. public AndroidNativeCompass(float alpha = 0.1f) {}
  24. #endif
  25. }
  26. }