我有一个能够捕获屏幕内容的应用设置。但是,有时,我会从aquireLatestImage返回null
值。该文档称,如果没有可用的图像数据,它将返回“null”。
我很想知道哪些图片数据不可用?
编辑:据我所知,这种情况最常发生在LG设备上......
编辑2:我遇到的情况是在先前返回有效图像值之后返回的空值。并继续返回空值。对于非LG设备,偶尔会返回空值。对于LG设备,似乎一旦它返回一个空值,其余的将为空。
编辑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);
答案 0 :(得分:0)
文档说"如果没有新图像可用,则返回null" 这意味着您在能够获取新图像之前调用它,因此不会浪费资源向您发送两次相同的图像,而是返回null。