Мне нужна моя работа, чтобы обрабатывать нажатие кнопки 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" в манифесте, но я не мог понять, как включить эту активность во время выполнения. Итог, я только хочу зарегистрируйте фильтр намерения для дома для моего приложения, только когда мой приложение работает, и я не могу понять, как это сделать.
Если вы пытаетесь внедрить замененный домашний экран, вам нужно, чтобы ваш фильтр Intent
находился в манифесте - см. приложение "Пример дома" в SDK.
Если вы пытаетесь заблокировать ключ HOME, не делайте этого.
Никогда не должно быть случая, когда вам нужно переопределить главную кнопку, чтобы убедиться, что пользователь всегда контролирует свой телефон. Что именно ты пытаешься сделать? Если вы хотите определить, когда ваша активность больше не видна, вы должны переопределить onStop().
PackageManager
«ssetComponentEnabledSetting()
метод.