Android - Можно ли отключить нажатие кнопки "Домой"
У меня есть приложение, когда он запускается, я должен отключить все кнопки на устройстве Android, мне удалось отключить конечный вызов и другие. Мне нужно отключить нажатие кнопки дома. Он не должен вызывать никаких действий при нажатии.
Любые предложения, высоко оцененные
Ответы
Ответ 1
Я уверен, что Toddler Lock просто использует BroadcastReciever и прислушивается к Intent.ACTION_MAIN
и к категории Intent.CATEGORY_HOME
- поэтому при первом запуске он советует вам установить флажок "использовать это приложение по умолчанию", и заставляет вас выбирать блокировку для малышей.
Таким образом, он действительно не блокирует кнопку "Домой" вообще, он просто устанавливает себя как широковещательный приемник по умолчанию для:
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
Когда вы запускаете Lock Toddler Lock, он, вероятно, устанавливает внутренний флаг, и если вы нажмете кнопку "домой", он просто приведёт окно вперед. Если флаг не установлен, он, вероятно, запускает Launcher явно.
Надеюсь, это имеет смысл. Это просто теория, но я почти на 100% уверен, что так оно и было.
Ответ 2
Добавьте в свой код следующий код:
@override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
Edit:
Это работает во всех старых версиях Android. Но не будет работать в ICS
и желе bean и даст вам сбой в приложении
Что означает этот 4-строчный Java-код в приложении Android?
Ответ 3
Добавьте это в свой манифест .xml для своей основной деятельности:
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
Кнопка HOME всегда (повторно) запускает вашу деятельность.
Работает в Фройо.
Ответ 4
Я нашел способ заняться ключом HOME. Для вашего приложения установите манифест как
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY"/>
Теперь приложение ur является альтернативным приложением Launcher.
Используйте adb и отключите приложение запуска с помощью диспетчера пакетов
pm disable com.android.launcher2
Теперь нажатие кнопки "Домой" будет оставаться на том же экране.
Ответ 5
здесь вы можете найти мое приложение для Android, которое сохраняется на домашней странице.
Кнопка "Дом", "Назад", "Вызов", "Питание" отключена.
Пользователь может завершить приложение, только набрав пароль.
Ответ 6
Дополнительное дополнение к сообщению Jeffreys, вот что-то, что сработало для меня (и до сих пор позволяет полупрозрачную тему)
@Override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
super.onAttachedToWindow();
}
Постарайтесь, чтобы клавиатура появилась, вы также можете просто отключить keyguard, пока приложение используется:
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
Это действительно хорошо работает для создания собственного приложения для блокировки клавиатуры.