2012-04-17 1 views
1

Я разрабатываю промышленное приложение, которое работает эффективно в режиме KIOSK - это пользователи, которые не могут выйти из него.Программный запуск программы запуска/Android

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

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

Что я ищу - это метод программного представления диалогового окна выбора Launchher Android.

Android, похоже, делает это самостоятельно, когда вы впервые запускаете пусковую установку, но я не могу понять, как это сделать программно.

ответ

3

Что я ищу - это метод про грамматического представления диалогового окна выбора Launchher Android.

Intent.createChooser() возвращает Intent, который запустит Chooser (который я думаю, что вы подразумеваете под «Android Launcher диалога выбора») для данного Intent. Итак, создайте Intent для ACTION_MAIN и CATEGORY_HOME, оберните это в Intent.createChooser() и позвоните по номеру startActivity() по полученному в результате Intent.

+0

Это именно то, что я ищу - Спасибо! –

+0

@CommonsWare: Я попробовал это, но когда моя пусковая установка определила как пусковую установку по умолчанию (пользователь установил флажок - использовать как по умолчанию) - начало такой деятельности, которую вы описали, просто перезапустив мою домашнюю активность (я думаю, потому что она уже определена как значение по умолчанию) вместо того, чтобы всплывать диалог/активность «главного экрана», поэтому мой пользователь может застрять на моем приложении в этом сценарии. какие-либо предложения? –

+0

@TalKanel: Если это на относительно недавнем устройстве HTC в США, возможно, это результат некоторых исках о нарушении патентных прав, поданных Apple. См. Http://commonsware.com/blog/2012/07/23/linkify-problem-patent-behavior.html и http://commonsware.com/blog/2012/07/24/linkify-problem-detection-mitigation .html – CommonsWare

-1

Если я правильно понимаю этот вопрос, вы не хотите вытаскивать пользователя из своего приложения, если он этого не хочет?

Я хотел бы сделать это следующим образом:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    return true; 
} 

Теперь щелчки кнопка будет игнорироваться для деятельности. Теперь вам нужно только сделать пункт меню для выхода.

+0

Я пробовал такие решения для начала. Он, к сожалению, не работает так хорошо. Как только у вас появится диалог прогресса, принесите строку состояния или запустите что-то вроде камеры, которую они могут нажать на домашний ключ, и пользователь не работает. Android по дизайну очень нацелен на то, чтобы не блокировать пользователя таким образом. Следовательно, мой вопрос был таким, как указано выше: Как представить Launcher Selection Dialog из приложения, которое уже установлено в качестве пусковой установки по умолчанию. Спасибо –

+0

да, вы должны сделать это на каждом мероприятии, я мог бы решить проблему с диалоговым окном прогресса, я создаю свой собственный с помощью всплывающих и xml-элементов. –

+0

Вы не можете, например, сделать это в строке состояния, или в приложении камеры? Мое решение кажется более простым и более безопасным. Я также читал, что Google видит возможность блокировать домашнюю кнопку как ошибку, которую они намереваются решить, поэтому это не будущие доказательства. –