我想在
有人打电话给我时截图。问题是当我接到来电并尝试截图时,应用程序会占用自己的屏幕。如何获取传入屏幕?(对不起,我的英语不好)
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 故意限制应用访问彼此的数据。即使有解决方法,你的应用在提交时也可能会被拒绝。