我正在尝试在我的 Android TV 设备上读取真实的物理显示分辨率。我有两台测试电视:
- 全高清,1920 x 1080 分辨率
- 具有 3840 x 2160 分辨率的超高清
和 1 个带有 Android 9 的 Android TV HDMI 棒。
我想根据电视设备读出真实的物理屏幕分辨率。为此,我尝试以两种方式读出 displayMetrics:
试图:
context.resources.displayMetrics
试图:
val displayMetrics = DisplayMetrics() activity.display?.getRealMetrics(displayMetrics)
不幸的是,我的 UHD 设备显示我提到的两次尝试都是 1920x1080。我对某些按比例缩小的显示分辨率不感兴趣。
编辑:正如@IanGClifton 回答的那样,我用DisplayCompat
. 我有一个在 Andorid 9 上运行的 AndroidTV“Stick”,它通过 HDMI 插入任何电视(插入上述 3840x2160 像素的 UHD 电视)设备。我闪动 Stick 并且physicalWidth
仍然physicalHeight
告诉我 1920x1080 像素。
val defaultDisplay = activity.windowManager.defaultDisplay
val mode = DisplayCompat.getMode(context, defaultDisplay!!)
Log.d(TAG, "Resolution ${mode.physicalWidth} x ${mode.physicaHeigth}.")
但是,当我直接刷新 Android TV 设备(不是 Android TV 棒)时,我得到了正确的分辨率。
如何读出任何设备的真实本机物理显示分辨率(以像素为单位)?