Захват HOME намерения программно

1

Мне нужна моя работа, чтобы обрабатывать нажатие кнопки HOME с помощью приемник программно, но событие не срабатывает. Я могу, однако, успешно зарегистрировать и захватить этот фильтр намерений, если я объявите его в разделе активности manifest.xml. Здесь код для приемник, который не работает:

BroadcastReceiver br;

br = new BroadcastReceiver() {
       @Override
       public void onReceive(Context context, Intent intent) {
               return;  // I put a breakpoint here to see if this gets called
       }
};


IntentFilter intf = new IntentFilter();
intf.addAction(Intent.ACTION_MAIN);
intf.addCategory(Intent.CATEGORY_HOME);
intf.addCategory(Intent.CATEGORY_DEFAULT);

registerReceiver(br, intf);

Кто-нибудь знает, почему это не фиксирует нажатие кнопки дома?

Кстати, я попытался обойти это, создав еще одно действие и указать свой фильтр намерений в манифесте. Я установил активность enabled = "false" в манифесте, но я не мог понять, как включить эту активность во время выполнения. Итог, я только хочу зарегистрируйте фильтр намерения для дома для моего приложения, только когда мой приложение работает, и я не могу понять, как это сделать.

Теги:
button
android-intent
intentfilter

2 ответа

3
Лучший ответ

Если вы пытаетесь внедрить замененный домашний экран, вам нужно, чтобы ваш фильтр Intent находился в манифесте - см. приложение "Пример дома" в SDK.

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

  • 0
    Да, это работает в манифесте, но я хочу включить / выключить его программно во время выполнения. Спасибо за вежливость :)
  • 0
    Да, к сожалению, я не думаю, что это работает. Тем не менее, я пропустил часть вашего вопроса: «Я установил активность включен =« ложь »в манифесте, но я не мог понять, как включить это действие во время выполнения». - Вы должны быть в состоянии сделать это с PackageManager «s setComponentEnabledSetting() метод.
Показать ещё 2 комментария
0

Никогда не должно быть случая, когда вам нужно переопределить главную кнопку, чтобы убедиться, что пользователь всегда контролирует свой телефон. Что именно ты пытаешься сделать? Если вы хотите определить, когда ваша активность больше не видна, вы должны переопределить onStop().

  • 0
    Я хочу добавить свое действие в качестве законного второго источника для нажатия кнопки home, и я могу легко сделать это, если я добавлю фильтр намерений в раздел действий manifest.xml. Единственное, что я хочу сделать по-другому, это то, что я хочу, чтобы эта функция работала ПО ТРЕБОВАНИЮ, потому что помещение фильтра в действие manifest.xml регистрирует мое действие для нажатия кнопки home, пока приложение установлено, и я не хочу, чтобы он выполнял это.
  • 0
    Блокировка для малышей на рынке - отличный пример приложения, которое законно переопределяет кнопку «Домой».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню