IOMobileFramebufferGetLayerDefaultSurface-Funktion unter iOS 9 fehlgeschlagen
Ich habe eine App erstellt, um Screenshots im Hintergrund aufzunehmen. Es funktioniert gut unter iOS 7.x und 8.x, konnte aber unter iOS 9 Beta nicht ausgeführt werden. Hier ist mein Code:
CFMutableDictionaryRef sm = IOServiceMatching("AppleH1CLCD");
io_service_t ioService = IOServiceGetMatchingService(kIOMasterPortDefault, sm);
if (!ioService)
{
sm = IOServiceMatching("AppleM2CLCD");
ioService = IOServiceGetMatchingService(kIOMasterPortDefault, sm);
}
if (!ioService)
{
sm = IOServiceMatching("AppleCLCD");
ioService = IOServiceGetMatchingService(kIOMasterPortDefault, sm);
}
IOMobileFramebufferConnection connection = 0;
IOSurfaceRef ptr = nil;
IOMobileFramebufferReturn openMobileFrameBufferResult = IOMobileFramebufferOpen(ioService, mach_task_self(), 0, &connection);
if (openMobileFrameBufferResult)
{
return;
}
IOMobileFramebufferReturn getLayerDefaultSurfaceResult = IOMobileFramebufferGetLayerDefaultSurface(connection, 0, (CoreSurfaceBufferRef*)&ptr);
if (getLayerDefaultSurfaceResult)
{
return; // Here, the getLayerDefaultSurfaceResult is -536870201, not 0!
}
.......
eim schrittweisen Debuggen stellte ich fest, dass die Funktion IOMobileFramebufferGetLayerDefaultSurface mit einem zurückgegebenen Wert von -536870201 nicht ausgeführt werden konnte und der erwartete Wert 0 wa
Wer kann mir sagen, warum das passiert ist und wie man es löst? thhhhhhhhhhhhhhh !!