问题找到了。从出现问题的doScreenshot函数里慢慢添加LOG跟踪,最终会跟到SurfaceFlinger.cpp文件的SurfaceFlinger::captureScreen里,注意到: // if we have secure windows, never allow the screen capture if (flinger->mSecureFrameBuffer) return true; result = flinger->captureScreenImplLocked(dpy, heap, w, h, f, sw, sh, minLayerZ, maxLayerZ); Camera打开时,flinger->mSecureFrameBuffer为true,直接return也就不截图了。Camera打开时系统会当成secure windows,请问secure windows啥意思?怎么理解呢?
notifyScreenshotError(mContext, mNotificationManager);
finisher.run();
return;
}
mScreenBitmap的值非NULL,不知这和Camera之间差别在那?
// if we have secure windows, never allow the screen capture
if (flinger->mSecureFrameBuffer)
return true;
result = flinger->captureScreenImplLocked(dpy,
heap, w, h, f, sw, sh, minLayerZ, maxLayerZ);
Camera打开时,flinger->mSecureFrameBuffer为true,直接return也就不截图了。Camera打开时系统会当成secure windows,请问secure windows啥意思?怎么理解呢?
似乎跟你说的问题是有联系的。