Подтвердить что ты не робот

Отключить домашнюю кнопку без перезагрузки устройства

Я хочу, чтобы после установки моего приложения из OTA кнопка "домой" устройства не будет работать вообще, чтобы пользователь не смог выйти из приложения. Мои копания привели меня к следующим результатам

A) У меня есть способ отключить домашнюю кнопку с помощью "mobileconfig" профиля, но ему необходимо перезагрузить устройство, и пользователь должен открыть мое приложение сразу после загрузки, я хочу сделать это, не перезапуская с помощью чего-то вроде Private Frameworks на устройствах, не поврежденных Jail. Я хочу знать, возможно ли это для устройств без перерыва?

C) Если отключить домашнюю кнопку с помощью Private Framework нельзя отключить, то можно ли открыть приложение сразу после загрузки устройства?, так как при запуске загружаются определенные приложения/процессы для джейлбрейка.

[ПРИМЕЧАНИЕ. Я не хочу отправлять свое приложение в iTunes.]

4b9b3361

Ответ 1

В iOS6 есть функция под названием "Управляемый доступ", которая позволит владельцам устройств блокировать пользователей (например, малышей и школьников) в приложении.

Это объясняет "Управляемый доступ для приложений iOS 6" .

Ответ 2

Официальным ответом на этот вопрос является "вы не можете отключить домашнюю кнопку в устройствах ios, это архитектура уровня os, и вы не авторизованы для нее".

Вам нужно копаться в потоке операционной системы, чтобы внести любые изменения, которые могут быть жесткими.

Хорошо, если вы измените свое мнение, хотя это одно открытое и простое решение для этого в ios 6, известном как Guided Access.

Ответ 3

Если вы можете сделать джейлбрейк, создайте LaunchDaemon или используйте существующий. LaunchDaemon - это файл в формате plist, который вызывается при перезагрузке и запуске вашего устройства. Вам также понадобится файл с именем open, созданный K3A

Загрузите open из здесь

Вам нужно будет переместить open в/usr/bin/или вы можете поместить его в свое приложение, не имеет значения, но установите разрешения для 0755 and root:wheel

Теперь на LaunchDaemons они хранятся здесь

/System/Library/LaunchDaemons

Вот пример. Допустим, вы назвали LaunchDaemon

com.gauravstomar.test.plist

Где он говорит com.bundle.identifier поместите свой идентификатор приложений, вы также можете найти его в своем Info.plist внутри вашего каталога приложений, где он говорит CFBundleIdentifier

Теперь внутри plist вставьте следующую информацию

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.gauravstomar.test</string>
    <key>ProgramArguments</key>
        <array>
          <string>open</string>
          <string>com.bundle.identifier</string>
        </array>
    <key>RunAtLoad</key>
    <true/>
        <key>StartInterval</key>
        <integer>1</integer>
</dict>
</plist>

Ярлык должен иметь то же имя, что и LaunchDaemon.plist, исключая расширение plist

ProgramArguments - это то, что вызывает открытие файла и запускает приложение

RunAtLoad запускает этот plist при перезагрузке

StartInterval заставит LaunchDaemon.plist открыть резервную копию через 1 секунду, если пользователь выйдет из приложения, если пользователь все еще в приложении ничего не произойдет

Убедитесь, что разрешения для вашего LaunchDaemon установлены на

0644 root:wheel

Вы все равно можете использовать свой мобильныйконфикт, чтобы кнопка дома была отключена. После завершения оценки вы можете отключить LaunchDaemon, чтобы приложение перестало перезапускаться со следующей командой launchctl unload/System/Library/LaunchDaemon/com.gauravstomar.plist

Сообщите мне, если вам нужна дополнительная помощь.

Ответ 4

Без jailbreaking приложение изолировано. Приложение просто не имеет доступа к беспорядку с кнопкой "домой". И вы действительно не должны путаться с домашней кнопкой.

В дополнение к "Управляемому доступу" вы также можете использовать "Ограничения", которые позволят вам отключить все, открыв ваше приложение. Вы можете отключить определенные приложения Apple, включая Safari, и запретить пользователям устанавливать приложения, удалять приложения, делать покупки и т.д.

У нас есть несколько iPod touch с приложением для проверки билетов, которое мы сдаем в аренду нашим клиентам. Мы используем "Ограничения", чтобы отключить все, кроме нашего приложения. Самое полезное ограничение пока не позволяет людям удалять приложения - невероятно, сколько людей случайно удалит приложение даже после предупреждения.