在装有android 10且没有任何软或硬导航按钮栏的手机上,检测到导航菜单按钮会返回true

问题描述

您好,我有一个必须在屏幕上方启动播放器的应用程序。因此,我必须检测电话是否具有软件导航按钮。我使用以下代码来检测软件导航栏的大小:



    public static int getSoftButtonsBarHeight(Activity act) {
            // getRealMetrics is only available with API 17 and +
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                displayMetrics metrics = new displayMetrics();
                act.getwindowManager().getDefaultdisplay().getMetrics(metrics);
                int usableHeight = metrics.heightPixels;
                act.getwindowManager().getDefaultdisplay().getRealMetrics(metrics);
                int realHeight = metrics.heightPixels;
                if (realHeight > usableHeight)
                    return realHeight - usableHeight;
                else
                    return 0;
            }
            return 0;
        }

然后,我使用返回的高度差并将活动底部放在该高度之上。

这很好。但是在装有android 10且没有任何导航按钮的手机中,此功能仍会为导航按钮栏返回大于零的值! 我该怎么办?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)