public static float GetStatusBarHeight(AndroidJavaObject activity) { if (Application.isEditor || activity == null) { return(0); } var context = GetApplicationContext(activity); var resources = GetResources(context); var displayMetrics = GetDisplayMetrics(resources); float height = 0; int resourceId = resources.Call <int>("getIdentifier", "status_bar_height", "dimen", "android"); if (resourceId > 0) { height = resources.Call <int>("getDimensionPixelSize", resourceId); } else { var density = GetScreenDensity(displayMetrics); int sdkInt = AndroidThemeNativeUtils.GetSdkVersion(); height = Mathf.Ceil(sdkInt >= SDK_ANDROID_M? 24 : 25 * density); } return(height); }
public virtual void ApplyStatusBarTheme() { if (m_enabled) { if (FullScreenMode != FullScreenModeEnum.Default) { var defaultFullScreen = Screen.fullScreen; var isFullScreen = FullScreenMode == FullScreenModeEnum.Default ? defaultFullScreen : (FullScreenMode == FullScreenModeEnum.Enabled ? true : false); if (defaultFullScreen != isFullScreen) { Screen.fullScreen = isFullScreen; } } #if UNITY_ANDROID if (m_changeStatusBarColor) { AndroidThemeNativeUtils.SetStatusBarColor(m_statusBarColor, m_useLightIconsOnStatusBar); } if (m_changeNavigationBarColor) { AndroidThemeNativeUtils.SetNavigationBarColor(m_navigationBarColor, m_useLightIconsOnNavigationBar); } #endif } }
public static float GetStatusBarHeight(bool force = false) { if (s_cachedStatusBarHeight < 0 || force) { #if UNITY_IPHONE && !UNITY_EDITOR s_cachedStatusBarHeight = _GetStatusBarHeight(); #elif UNITY_ANDROID && UNITY_2019_1_OR_NEWER && !UNITY_EDITOR var activity = AndroidThemeNativeUtils.GetActivity(); s_cachedStatusBarHeight = AndroidThemeNativeUtils.GetStatusBarHeight(activity); #else s_cachedStatusBarHeight = 0; #endif } return(s_cachedStatusBarHeight); }
public static bool IsStatusBarActiveWithLayoutStable(bool force = false) { if (s_cachedIsStatusBarActive == null || force) { #if UNITY_IPHONE && !UNITY_EDITOR s_cachedIsStatusBarActive = _IsIOSStatusBarActive(); #elif UNITY_ANDROID && !UNITY_EDITOR var activity = AndroidThemeNativeUtils.GetActivity(); var window = AndroidThemeNativeUtils.GetWindow(activity); s_cachedIsStatusBarActive = !Screen.fullScreen && AndroidThemeNativeUtils.IsStatusBarActive(window) && AndroidThemeNativeUtils.IsViewBehindBars(window); #else s_cachedIsStatusBarActive = false; #endif } return(s_cachedIsStatusBarActive != null ? s_cachedIsStatusBarActive.Value : false); }