Search code examples
iosbrightness

Detect if a brightness change on iOS was a user action or automatic action


I've seen that I can detect changes in screen brightness by registering as an observer for UIScreenBrightnessDidChangeNotification

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(brightnessDidChange:) name:UIScreenBrightnessDidChangeNotification object:nil];
}

-(void) brightnessDidChange:(NSNotification*)notification
{
    NSLog(@"Brightness did change");
}

The object property of the notification is a UIScreen object.

I've tried to find a property that lets me know if the action was user generated or if it was an automatic change produced by iOS. This is important for my app since both situations should be treated differently. I did not find anything about this in the documentation. Any help will be appreciated.


Solution

  • I think it is not possible, we can only get notification when Brightness change by the system or manually. we can't differentiate both.