Разработка приложения для запуска в режиме киоска на android

Как сделать так, чтобы наше приложение работало как приложение для режима киоска (SureLock lockdown app). У меня LG E400 рутированный Android-телефон Android 2.3.6. Я хочу разработать такое приложение, как Surelock, что мне нужно разработать такое приложение.

Может ли кто-нибудь помочь мне разработать такое приложение самостоятельно.

Мои требования: Android-устройство загружается с моим приложением. В этом приложении все аппаратные кнопки отключены («Домой», «Назад», «Меню»), как и в приложении SureLock.


person PrasadM    schedule 09.01.2013    source источник
comment
И принятый ответ, и ответ с наибольшим количеством голосов не блокируют полностью ваше приложение в режиме киоска. В SO есть повторяющиеся вопросы об этой проблеме, поэтому я не буду отвечать на этот, но у меня есть ответ с плюсами и минусами различных решений: stackoverflow.com/a/43644803/2888763   -  person Trevor Halvorson    schedule 22.05.2017


Ответы (2)


Если ваше приложение работает как домашний экран, и у вас не установлен другой домашний экран (или вы отметили свое приложение по умолчанию), оно запустится при загрузке, и вы не сможете выйти из него. Если вы каким-то образом не убьете задачу, но этого не избежать.

Ваше приложение должно использовать

android.intent.category.HOME

намерение быть первым видимым приложением при загрузке.

Если вам нужен какой-то источник, вы можете посмотреть на Anderweb ADW Launcher https://github.com/AnderWeb/android_packages_apps_Launcher

person Dominic    schedule 09.01.2013
comment
Спасибо за помощь. Но как я могу отключить кнопки во время работы моего приложения. Я имею в виду отключение функциональности аппаратных кнопок (кнопки «Назад», «Домой» и «Меню»). - person PrasadM; 11.01.2013
comment
stackoverflow .com / questions / 2000102 / Вот пример кнопки "Назад". Возможно, вам также придется ловить кнопку поиска. Дом не должен быть проблемой, потому что ваше приложение будет домашним приложением. - person Dominic; 12.01.2013

Хорошо ... после нескольких часов борьбы с этим я и ничего не нашел в чистом капитале, пока .... (не требует рутирования телефона)

Главная кнопка ::::

<category android:name="android.intent.category.HOME" />

для обработки дна дома ...

Кнопка назад ::::

@Override
public void onBackPressed() {
    // We doing this too stop user from exiting app, normally.
    // super.onBackPressed();
}

Для длительного нажатия кнопки «Домой» (недавние действия в приложении или Google сейчас) или недавней кнопки приложения ...

@Override
protected void onPause() {
    super.onPause();

    ActivityManager activityManager = (ActivityManager) getApplicationContext()
            .getSystemService(Context.ACTIVITY_SERVICE);

    activityManager.moveTaskToFront(getTaskId(), 0);
}

потребуется разрешение ...

<uses-permission android:name="android.permission.REORDER_TASKS" />
person Clifford    schedule 11.10.2013
comment
Предупреждение ... это может потенциально заблокировать ваш телефон ... Я думаю ... с вами все должно быть в порядке, если у вас есть галочка, всегда разрешать отладку USB на вашем компьютере ... таким образом вы можете изменить код и повторно развернуть его с вашего компьютера . - person Clifford; 22.10.2013
comment
Вы всегда можете загрузиться в загрузчик с помощью жестких клавиш и выполнить прошивку оттуда. Это было бы не весело, но на безопасном расстоянии от кирпича. - person Vaiden; 07.11.2013
comment
пользователи могут удалить приложение из настроек. потому что панель уведомлений может открываться таким образом. - person Selin; 19.03.2014
comment
@Clifford Это каждый раз создает новое занятие. Есть ли способ избежать создания новой активности при каждом нажатии кнопки «Домой». - person amalBit; 13.08.2014
comment
Отличное решение. Я реализовал всякие, когда все, что требовалось, было это. - person mwrf; 09.10.2014
comment
как насчет верхнего меню? - person user1532587; 23.01.2015
comment
Моветасктофронт не определен - person Menna-Allah Sami; 18.02.2015
comment
Как именно это перехватит домашнее длинное нажатие? Похоже, что на паузе главный экран просто выводится на передний план ... (?) - person JohnyTex; 24.03.2015