您好,我有一个必须在屏幕上方启动播放器的应用程序。因此,我必须检测电话是否具有软件导航按钮。我使用以下代码来检测软件导航栏的大小:
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且没有任何导航按钮的手机中,此功能仍会为导航按钮栏返回大于零的值! 我该怎么办?