Программно заблокировать и разблокировать экран iPhone

Как программно заблокировать и разблокировать главный экран (то есть само устройство) iPhone?

Это невозможно. Тем не менее, вы можете «запретить» ваш телефон блокироваться, когда приложение работает. [UIApplication sharedApplication].idleTimerDisabled = YES должен это сделать.

Это можно сделать, выполнив калибровку GSEventLockDevice (); из вашего приложения. Эта функция может быть найдена в GraphicsServices.framework.

Это уже разрешено. Вы можете найти его на Github: https://github.com/neuroo/LockMeNow (работа ниже IOS 7)

 char*framework="/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices"; void *handle= dlopen(framework, RTLD_NOW); if (handle) { void (*GSEventLockDevice)() = dlsym(handle, "GSEventLockDevice"); if (GSEventLockDevice) { GSEventLockDevice(); NSLog(@"Phone is Locked"); //......... } dlclose(handle); } 

Вероятно, это возможно с недокументированными функциями Apple (возможно, GSEventLockDevice ()?), Но это, безусловно, приводит к автоматическому обновлению App Store REJECTION.

Apple просто не хочет, чтобы кто-нибудь играл с такими функциональными возможностями.

Если вы хотите сделать это, Apple никогда не одобряет это, ваше приложение должно быть джейлбрейком. вы можете сделать это, вызвав Private framework в своем проекте. вы можете использовать GraphicsServices.framework .

ЗАМЕТКА :

Этот GraphicsServices.framework является частной структурой. Apple никогда не примет ваше приложение. GSEventLockDevice() метод GSEventLockDevice() вы можете легко блокировать или разблокировать свое устройство. Этот GSEventLockDevice() находится в GSEvent.h .

Надеюсь, это поможет вам.

Пожалуйста, дайте мне знать, если вы все еще сталкиваетесь с какой-либо проблемой

Я не верю, что есть способ добиться этого.

Одна вещь, которая, я считаю, возможна, – это остановить блокировку IPhone. вы могли бы создать представление, которое скопировало функцию блокировки блокировки, и вы все равно будете иметь контроль над телефоном.

в принципе это невозможно, потому что это, вероятно, является частью частных фреймворков, которые могут использоваться только Apple. Существуют приложения, такие как поддельные приложения-вызывающие, которые используют «фальшивый» блокирующий экран, но, как вы уже указали, нажатие кнопки «домой» завершает работу приложения, что делает ваш экран блокировки бесполезным.

Опишите блокировку и разблокировку. Я бы попробовал переключатель, который включал = YES и enabled = NO для свойства view. Таким образом, вы можете отключить все UIGestureRecognizers и «заблокировать» экран, если это то, что вы имеете в виду. Я делаю это с помощью UIbuttons когда я добавляю их как IBOutlet а также IBAction , поэтому они являются объектом и могут быть изменены на уровне свойств. Я сейчас работаю над этим. Я опубликую свои выводы.

  • Проверка подлинности электронной почты на textField в iPhone sdk
  • Как программно перемещать UIScrollView для фокусировки в контроле над клавиатурой?
  • Преобразование часовых поясов iPhone NSDateFormatter
  • Как сделать кнопку перехвата надписью для перехвата событий?
  • Тип аксессуара UITableViewCell, проверенный на доступ и установка других непроверенных
  • NSString: isEqual vs. isEqualToString
  • UIScrollView горизонтальный пейджинг, как вкладки Mobile Safari
  • Длительное нажатие на UITableView
  • NSData для UIImage
  • iPhone UIButton с функциональностью UISwitch
  • ApplicationWillTerminate в iOS 4.0
  • Interesting Posts

    Java: multidimensional array против одномерного

    Развертывание приложения RoR для Heroku с помощью SQLite 3 не выполняется

    Шрифт подсказки пароля в Android

    Поведение Crypto / AES по умолчанию Java по умолчанию

    Переменные classа еще не поддерживаются.

    -webkit-overflow-scrolling: touch; перерывы в iOS8 от Apple

    NSLocale currentLocale всегда возвращает «en_US», а не текущий язык пользователя

    Замена конфигурации annotations для mvc: resources – Spring

    Получить UITableView для перехода к выбранному UITextField и избегать скрытия клавиатуры

    Экспортируйте каждый лист в отдельный файл csv

    Создайте загрузочный USB-накопитель Linux (Knoppix) (с несколькими разделами) с Linux или Mac OS X

    Самый точный способ выполнить комбинированную операцию умножения и деления в 64-битном режиме?

    Express.js Ошибка маршрутизации: не удается установить заголовки после их отправки

    Не удалось установить доверительные отношения для безопасного канала SSL / TLS – SOAP

    Как восстановить значок жесткого диска? Windows 7

    Давайте будем гением компьютера.