В настоящее время я использую этот код для захвата экрана:Программные делать скриншоты на прошивке из любой
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(keyWindow.bounds.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(keyWindow.bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[keyWindow.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Он прекрасно работает с трамплин, но в открытом приложении, нет изображения создается. Ключевое окно и [UIScreen mainScreen] должны работать где угодно, или нет?
Должен ли я уточнить и каким-то образом использовать конкретное окно, которое использует текущее приложение?
Вы пытаетесь получить скриншоты других приложений? – sosborn
Я делаю прослушиватель Activator, и когда вызывается, код запускается, чтобы получить снимок экрана. При вызове из открытого приложения изображение не создается. –
Ваш код получает экран для вашего приложения. Если ваше приложение находится в фоновом режиме, оно ничего не отображает на экране, поэтому нет изображения. Это моя лучшая догадка. – sosborn