Android 系统升级遇到的问题

1. 状态栏高度

发现 Android 11 上 targetSdkVersion 是30时获取状态栏高度为0,低于30获取值正常。。。因此需要使用WindowMetrics适配一下,仅此记录,暂未发现异常

public static int getStatusBarHeight(Context context) {

 	if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        WindowMetrics windowMetrics = wm.getCurrentWindowMetrics();
        WindowInsets windowInsets = windowMetrics.getWindowInsets();
        Insets insets = windowInsets.getInsetsIgnoringVisibility(WindowInsets.Type.statusBars() | WindowInsets.Type.displayCutout());
        return insets.top;
    }       
	
	....
}

WindowMetricsAndroid11 新增的类,用于获取窗口边界,同样可以用来获取导航栏高度。