接到来电时截取屏幕截图


我想在

有人打电话给我时截图。问题是当我接到来电并尝试截图时,应用程序会占用自己的屏幕。如何获取传入屏幕?(对不起,我的英语不好)

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
    }
}

同意@holex - 你不能。 出于安全/隐私原因,iOS 故意限制应用访问彼此的数据。即使有解决方法,你的应用在提交时也可能会被拒绝。

最新更新