/// <summary> /// Checks if Android Device has auto rotation enabled. /// </summary> /// <returns> True if AutoRotate is enabled, is not Android, or it fails. </returns> public static bool IsAutoRotateEnabled() { bool isAutoRotateEnabled = true; #if UNITY_ANDROID && !UNITY_EDITOR try { // $ as System is subclass of Settings? using (AndroidJavaClass systemSettings = new AndroidJavaClass("android.provider.Settings$System")) using (AndroidJavaObject contentResolver = CommonAndroid.GetUnityActivity().Call <AndroidJavaObject>("getContentResolver")) { isAutoRotateEnabled = (systemSettings.CallStatic <int>("getInt", contentResolver, "accelerometer_rotation") == 1); } } catch (System.Exception e) { Debug.LogError(e); } #endif return(isAutoRotateEnabled); }
/// <summary> /// Gets the current Android packageManager and checks if it is leanback or television. /// </summary> /// <returns> True if the device is an androidTv, false if not on android. </returns> public static bool IsAndroidOrFireTv() { if (!isTv_.HasValue) { #if UNITY_ANDROID && !UNITY_EDITOR try { using (AndroidJavaObject context = CommonAndroid.GetUnityActivity().Call <AndroidJavaObject>("getApplicationContext")) using (AndroidJavaObject packageManager = context.Call <AndroidJavaObject>("getPackageManager")) { isTv_ = packageManager.Call <bool>("hasSystemFeature", "android.software.leanback") || packageManager.Call <bool>("hasSystemFeature", "android.hardware.type.television"); } } catch (System.Exception e) { Debug.LogError("Couldn't Retrieve IsAndroidOrFireTv" + e); isTv_ = false; } #else isTv_ = false; #endif } return((bool)isTv_); }