越狱8系统使用IOSurfaceGetBaseAddress获取屏幕返回黑屏

需求: 应用后台实时获取当前屏幕上的图片

**代码: 代码示例

IOSurfaceRef destSurf = IOSurfaceCreate(dict)
//这里返回destSurf <IOSurface 0x1670d754 [0x166206e0]>
IOSurfaceGetBaseAddress(destSurf)
//执行此句代码是返回一个buffer缓冲数据指针,问题所在

经测试,部分8系统手机可以获取屏幕图片成功,而部分则不可以。

如何能够让IOSurfaceGetBaseAddress返回当前屏幕正确的图片Data,而非00000000空数据图片?

  • 环境: iOS 8.1.3
  • xcode 9
  • 屏幕当前数据非GL渲染