how to check if the iOS device is locked/unlocked using Swift?

后端 未结 1 413
轻奢々
轻奢々 2020-12-09 07:16

how can I detect a locked/unlocked iOS device using Swift ( like the SCRENON / SCREENOFF in Android )

相关标签:
1条回答
  • 2020-12-09 07:39

    I create same think using following.

    You need to use the bridge for objective c code use into swift.

    Here is the Link for create the bridge between the Objective c to Swift.

    Once Completed then you can add following .h file into yourproject-Bridging-Header. file add the yourcontroller.h

    Then add NotificationCenter.framework into your project.

    Into your CustomObject.m

    #import "notify.h"
    
    -(void)registerAppforDetectLockState {
    
        int notify_token;
        notify_register_dispatch("com.apple.springboard.lockstate", &notify_token,dispatch_get_main_queue(), ^(int token) {
    
            uint64_t state = UINT64_MAX;
            notify_get_state(token, &state);
    
            if(state == 0) {
                NSLog(@"unlock device");
            } else {
                NSLog(@"lock device");
            }
    
            NSLog(@"com.apple.springboard.lockstate = %llu", state);
            UILocalNotification *notification = [[UILocalNotification alloc]init];
            notification.repeatInterval = NSCalendarUnitDay;
            [notification setAlertBody:@"Hello world!! I come becoz you lock/unlock your device :)"];
            notification.alertAction = @"View";
            notification.alertAction = @"Yes";
            [notification setFireDate:[NSDate dateWithTimeIntervalSinceNow:1]];
            notification.soundName = UILocalNotificationDefaultSoundName;
            [notification setTimeZone:[NSTimeZone  defaultTimeZone]];
    
            [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
    
        });
    }
    

    Then CustomObject.h

    -(void)registerAppforDetectLockState;
    

    Now into swift code you can directly use this method.

    var instanceOfCustomObject: LockViewController = LockViewController()
    instanceOfCustomObject.registerAppforDetectLockState();
    

    May this helps lot.

    0 讨论(0)
提交回复
热议问题