Захват HOME намерения программно - PullRequest
1 голос
/ 09 февраля 2010

Мне нужна моя активность, чтобы справиться с нажатием кнопки 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);

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

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

Ответы [ 2 ]

3 голосов
/ 09 февраля 2010

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

Если вы пытаетесь заблокировать HOME, пожалуйста, не надо.

0 голосов
/ 09 февраля 2010

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

...