для моего приложения iOS я хочу реализовать функцию, в которой экран должен отключиться (например, когда вы отвечаете на телефонный звонок), когда устройство сталкивается. поэтому я начал с определения ориентации устройства:
//in my ViewDidLoad
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.rotated(_:)), name: UIDeviceOrientationDidChangeNotification, object: nil)
//called when the device changes orientation
func rotated(notification: NSNotification){
if UIDevice.currentDevice().orientation == UIDeviceOrientation.FaceDown{
print("device = faced down")
}else{
print("device != faced down")
}
}
Когда устройство выключено, я позвонил
UIDevice.currentDevice().proximityMonitoringEnabled = true
еще
UIDevice.currentDevice().proximityMonitoringEnabled = false
проблема UIDeviceOrientationDidChangeNotification
кажется немного запоздалой, поэтому, когда вызывается функция rotated()
, устройство уже обращено вниз, и оказывается, что для proximityMonitoringEnabled = true
отключить экран близость датчик не должен быть уже закрыт!
Я уверен, что это ограничение Apple, но, возможно, кто-то там нашел решение или наткнулся на обходное решение!
спасибо заранее.