Android ImageReader aquireLatestImage偶尔会为null

Cam*_*art 7 android

我有一个能够捕获屏幕内容的应用程序设置.但是,有时,我nullaquireLatestImage返回一个值.该文档称,如果没有可用的图像数据,它将返回"null".

我很想知道什么是没有可用的图像数据?

编辑:据我所知,这种情况最常发生在LG设备上......

编辑2:我遇到的情况是在它之前返回有效图像值之后返回的空值.并继续返回空值.对于非LG设备,偶尔会返回空值.对于LG设备,似乎一旦返回一个null,其余的将为空.

编辑3:包括一些代码

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

Display display = wm.getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics );

ImageReader imageReader = ImageReader.newInstance(displayMetrics.widthPixels, displayMetrics.heightPixels, PixelFormat.RGBA_8888, 2);

virtualDisplay = mediaProjection.createVirtualDisplay("NetCountableVirtualDisplay",
        displayMetrics.widthPixels,
        displayMetrics.heightPixels,
        displayMetrics.densityDpi,
        DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY | DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC,
        imageReader.getSurface(),
        null,
        null);
Run Code Online (Sandbox Code Playgroud)

小智 0

文档说“如果没有图像可用,则返回 null”这意味着您在它能够获取新图像之前调用它,因此它不会浪费资源向您发送相同的图像两次,而是返回 null。