2017-06-17 5 views
-1

Ich möchte Screenshots von jeder laufenden App machen, während meine App im Hintergrund ist.Screenshot erstellen, wenn App geschlossen wurde

Ich habe einen Timer in der Methode applicationDidEnterBackground gesetzt.

func applicationDidEnterBackground(_ application: UIApplication) { 
    var timer = Timer.scheduledTimer(timeInterval: 10, target: self, selector: #selector(self.takeSS), userInfo: nil, repeats: true) 
} 

Und ich erstellt eine Methode namens takeSS

func takeSS(){ 

    UIGraphicsBeginImageContextWithOptions((window?.bounds.size)!, false, UIScreen.main.scale) 

    self.window?.drawHierarchy(in: (window?.bounds)!, afterScreenUpdates: true) 
    var image:UIImage = UIGraphicsGetImageFromCurrentImageContext()! 


    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil) 

} 

Es dauert Bildschirm schießen alle 10 Sekunden und es in die Kamerarolle speichern. Aber Screenshots sind weiße und leere Fotos. Gibt es eine Möglichkeit, Screenshots zu machen, wenn die App geschlossen ist?

Vielen Dank.

+0

Es sind nur wenige Arten der Hintergrundverarbeitung erlaubt - https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/ TP40007072-CH4-SW4 - und das ist keiner von ihnen. Sie fragen im Wesentlichen nach, wie eine Sandbox-App andere Sandbox-Apps ausspionieren kann. – Ssswift

Antwort

3

Sie können das nicht tun. Apple hat aus Sicherheitsgründen die API blockiert, die Sie benötigen, um einen Screenshot von allem außer dem Inhalt Ihrer App in iOS 9 zu erstellen. Ich recherchierte dies ausführlich für eine Firma, für die ich arbeitete, und fand heraus, dass es unmöglich ist, es sei denn, das Gerät ist jailbroken.

Verwandte Themen