1
0

AndroidJavaObjectExtensions.cs 977 B

123456789101112131415161718192021222324252627282930313233
  1. #if UNITY_ANDROID
  2. namespace UnityEngine.Monetization
  3. {
  4. public static class AndroidJavaObjectExtensions
  5. {
  6. private static int _sdkVersion = -1;
  7. private static readonly int BuildVersionKitKat = 19;
  8. public static string SafeStringCall(this AndroidJavaObject javaObject, string methodName)
  9. {
  10. if (_sdkVersion == -1)
  11. {
  12. _sdkVersion = GetSDKLevel();
  13. }
  14. if (_sdkVersion <= BuildVersionKitKat)
  15. {
  16. var stringJavaObject = javaObject.Call<AndroidJavaObject>(methodName);
  17. return stringJavaObject?.Call<string>("toString");
  18. }
  19. return javaObject.Call<string>(methodName);
  20. }
  21. public static int GetSDKLevel()
  22. {
  23. using (var clazz = new AndroidJavaClass("android.os.Build$VERSION"))
  24. {
  25. return clazz.GetStatic<int>("SDK_INT");
  26. }
  27. }
  28. }
  29. }
  30. #endif