2012-03-17 3 views
1

В настоящее время я использую этот код для захвата экрана:Программные делать скриншоты на прошивке из любой

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] должны работать где угодно, или нет?

Должен ли я уточнить и каким-то образом использовать конкретное окно, которое использует текущее приложение?

+0

Вы пытаетесь получить скриншоты других приложений? – sosborn

+0

Я делаю прослушиватель Activator, и когда вызывается, код запускается, чтобы получить снимок экрана. При вызове из открытого приложения изображение не создается. –

+0

Ваш код получает экран для вашего приложения. Если ваше приложение находится в фоновом режиме, оно ничего не отображает на экране, поэтому нет изображения. Это моя лучшая догадка. – sosborn

ответ

0

Это может быть глупый ответ, но вы уверены, что представление загружено, когда вы пытаетесь захватить ключевое окно?

HOpe это помогает.

+0

Это не ответ, это комментарий. – JustSid

0

Это только джейлбрейкиутая прошивка:

// fwd declare a private function 
UIKIT_EXTERN CGImageRef UIGetScreenImage(); 

// grab screen image from framebuffer. 
// this grabs everything: status bar included 
CGImageRef ref = UIGetScreenImage(); 

// create a UIImage out of CoreGraphics object 
// at this point img contains your screenshot 
UIImage* img = [UIImage imageWithCGImage:ref]; 

// release temp object 
CGImageRelease(ref); 
+0

Вам нужно добавить какое-то описание, как работать с этим кодом .... это хорошо для вас и других ...: -) .... cheers –

+0

Очевидно, вам нужно сделать это с помощью дополнения для мобильного субстрата (tweak) –

Смежные вопросы