2017-01-12 8 views
0

誰かが私に電話をかけたときにスクリーンショットを撮りたい。問題は、私が着信コールを取得し、スクリーンショットしようとすると、アプリは自分の画面を取る。着信画面はどうすれば入手できますか?(英語には申し訳ありません)着信時にスクリーンショットを撮る

class ViewController: UIViewController { 

    private var callCenter = CTCallCenter() 
    @IBOutlet weak var imageView: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     callCenter.callEventHandler = { (call:CTCall!) in 

      switch call.callState { 
      case CTCallStateConnected: 
       print("CTCallStateConnected") 
       self.callConnected() 
      case CTCallStateDisconnected: 
       print("CTCallStateDisconnected") 
       self.callDisconnected() 
      case CTCallStateIncoming: 
       print("CTCallStateIncoming") 
       self.callIncoming() 
      default: 
       break 
      } 
     } 
    } 

    func callIncoming(){ 
     captureScreen() 
    } 

    func callConnected(){ 
     captureScreen() 
    } 

    func callDisconnected() { 
     captureScreen() 
    } 

    func captureScreen() { 
     UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, UIScreen.main.scale) 
     view.layer.render(in: UIGraphicsGetCurrentContext()!) 
     let image = UIGraphicsGetImageFromCurrentImageContext() 
     UIImageWriteToSavedPhotosAlbum(image!, nil, nil, nil) 
     UIGraphicsEndImageContext() 
     imageView.image = image 
    } 
} 
+3

あなたのアイデアには多くのプライバシー侵害がありますが、アップルではサポートされていません。 – holex

答えて

4

@holexと同意することはできません。 iOSは、セキュリティ/プライバシーの理由から、お互いのデータにアクセスするアプリを意図的に制限します。このための回避策があったとしても、あなたのアプリは提出されると却下される可能性があります。

関連する問題