如何确定android设备是否有凹口和软键?

如何确定android设备是否有凹口和软键?,android,navigation,operating-system,Android,Navigation,Operating System,我试图找出一个安卓设备是否有软键和凹口。我能够通过以下逻辑找到软键的存在: private fun hasSoftKeys(windowManager: WindowManager): Boolean { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { val d = windowManager.defaultDisplay val

我试图找出一个安卓设备是否有软键凹口。我能够通过以下逻辑找到软键的存在:

    private fun hasSoftKeys(windowManager: WindowManager): Boolean {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            val d = windowManager.defaultDisplay
            val realDisplayMetrics = DisplayMetrics()
            d.getRealMetrics(realDisplayMetrics)
            val realHeight = realDisplayMetrics.heightPixels
            val realWidth = realDisplayMetrics.widthPixels
            val displayMetrics = DisplayMetrics()
            d.getMetrics(displayMetrics)
            val displayHeight = displayMetrics.heightPixels
            val displayWidth = displayMetrics.widthPixels
            return realWidth - displayWidth > 0 || realHeight - displayHeight > 0
        } else {
            return false
        }
    }

但对于具有槽口的设备来说,这是失败的。任何帮助都将不胜感激。

使用它,我只能确定设备是否有凹口。它没有给出任何关于软键的想法。