idleTimerDisabled не работает с (автономным) режимом одного приложения - PullRequest
0 голосов
/ 23 апреля 2019

У нас есть приложение для киоска, в котором мы используем idleTimerDisabled, чтобы предотвратить выключение экрана в рабочее время и позволить ему выключиться вечером.

Я делаю это с помощью таймера, созданного вapplicationDidBecomeActive метод:

self.screenLockTimer = [NSTimer scheduledTimerWithTimeInterval:300 target:self selector:@selector(setupScreenLock) userInfo:nil repeats:YES];

-

- (void)setupScreenLock {
    NSDate *currentDate = [NSDate date];
    NSDate *closingDate = [[NSCalendar currentCalendar] dateBySettingHour:17 minute:0 second:0 ofDate:currentDate options:0];
    BOOL isOpeningHours = [currentDate compare:closingDate] == NSOrderedAscending;
    [UIApplication sharedApplication].idleTimerDisabled = isOpeningHours;
}

Это работало нормально, пока мы не начали использовать Автономный режим единого приложения .Теперь экран больше не выключается вечером.Есть ли объяснение (и обходной путь) для этого?Я знаю, что в iOS 12 есть ошибка, из-за которой idleTimerDisabled больше не работает с Guided Access, но я не видел отчетов о похожих проблемах в режиме единого приложения.

1 Ответ

1 голос
/ 30 мая 2019

Запуск собственной операции может «решить» проблему.Я смог решить свои проблемы, используя приведенный ниже код.

Попробуйте использовать следующий код:

    [UIApplication sharedApplication].idleTimerDisabled = isOpeningHours;

    // Guided access idle timer fix
    UITextField *textField = [[UITextField alloc] init];
    [self.view addSubview:textField]; // self.view or whatever relevant view is accessible.
    [textField becomeFirstResponder];
    [textField resignFirstResponder];
    [textField removeFromSuperView];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...