Как определить, что iPhone используется / разблокирован - PullRequest
0 голосов
/ 01 мая 2018

Я столкнулся с одним из требований, когда мне нужно определить, использует ли пользователь iPhone или нет. Даже если мое приложение в фоновом режиме, то тоже. До сих пор я нашел следующие выходы, но ни один из них не указывает на механизм разблокировки:

  1. applicationProtectedDataWillBecomeUnavailable: Это сообщит, заблокировал ли пользователь / разблокировал устройство, но будет работать, только если установлен пароль.

  2. Уведомления Дарвина о блокировке / разблокировке : не принимаются в AppStore.

  3. Датчик приближения (UIDeviceProximityStateDidChangeNotification) : это произойдет, только если пользователь звонит.

  4. [[UIScreen mainScreen] brightness]: можно запросить в состоянии applicationDidEnterBackground, чтобы проверить, заблокирован ли телефон или была нажата домашняя кнопка. Если яркость больше 0, это означает, что кнопка «Домой» была нажата или произошел переход в какое-либо другое приложение, если оно равно 0, это означает, что заблокировано.

  5. Использование датчиков движения: учитывая разрядку аккумулятора, довольно некорректный подход для проверки того, как работает устройство или ускорение в определенной системе координат

  6. UIDeviceOrientationDidChangeNotification: работает только когда приложение находится на переднем плане.

  7. Какова технология, лежащая в основе реализации Apple "Поднять на пробуждение": я видел, что iPhone6s делает экран ярче, когда вы поднимаете его. Они должны использовать более эффективный способ, чем акселерометр?

Я не вижу других хороших подходов. Я что-то пропустил?

...