Я почти уверен, что Toddler Lock просто использует BroadcastReciever и прослушивает Intent.ACTION_MAIN
и категорию Intent.CATEGORY_HOME
- поэтому, когда вы впервые запускаете его, он говорит вам установить флажок «использовать это приложение по умолчанию», и заставляет вас выбрать блокировку малыша.
Таким образом, она вообще не блокирует кнопку «Домой», она просто настраивается в качестве приемника вещания по умолчанию для:
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
Когда вы запускаете Toddler Lock, он, вероятно, устанавливает внутренний флаг, а если вы нажимаете кнопку «Домой», он просто выводит окно вперед. Если флаг не установлен, он, вероятно, запускает Launcher явно.
Надеюсь, это имеет смысл. Это просто теория, но я почти на 100% уверен, что так оно и есть.