是的,您可以从/ dev / graphics / fb0获得屏幕分辨率,但是(至少在我的手机上)读取权限仅限于root用户和“
graphics”组中的用户。无论如何,您可以执行以下操作(为清楚起见,已删除错误检查):
// ... other standard includes ...#include <sys/ioctl.h>#include <linux/fb.h>//...struct fb_var_screeninfo fb_var;int fd = open("/dev/graphics/fb0", O_RDONLY);ioctl(fd, FBIOGET_VSCREENINFO, &fb_var);close(fd);// screen size will be in fb_var.xres and fb_var.yres我不确定这些接口是否被视为“公共” NDK接口,因为我不知道Google是否认为“ Android在Linux上运行并使用Linux
framebuffer接口”是公共API的一部分,但它确实似乎工作。
如果确实要确保它是可移植的,则可能应该具有调用Java WindowManager API的JNI后备。



