import SwiftUI import UIKit class ProximityObserver { @objc func didChange(notification: NSNotification) { print("MyView::ProximityObserver.didChange") if let device = notification.object as? UIDevice { print(device.proximityState) } } } struct MyView: View { var proximityObserver = ProximityObserver() func activateProximitySensor() { print("MyView::activateProximitySensor") UIDevice.current.isProximityMonitoringEnabled = true if UIDevice.current.isProximityMonitoringEnabled { NotificationCenter.default.addObserver(proximityObserver, selector: #selector(proximityObserver.didChange), name: UIDevice.proximityStateDidChangeNotification, object: UIDevice.current) } } func deactivateProximitySensor() { print("MyView::deactivateProximitySensor") UIDevice.current.isProximityMonitoringEnabled = false NotificationCenter.default.removeObserver(proximityObserver, name: UIDevice.proximityStateDidChangeNotification, object: UIDevice.current) } var body: some View { Text("Foo") .onAppear() { self.activateProximitySensor() }.onDisappear() { self.deactivateProximitySensor() } } }