Я почти уверен, что 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% уверен, что именно так это и делается.
person
synic
schedule
16.04.2010