Дважды нажмите кнопку домой в Android

Я работаю над приложением замены домашнего экрана. У меня установлено действие по умолчанию, и я хочу переопределить (в некотором смысле) то, что происходит, когда дважды нажимается кнопка "Домой". Пока у меня есть код в onResume() метод действия "Домой", который определяет, если кнопка "Домой" была нажата дважды в быстрой последовательности. По сути, у меня есть код, который я могу запустить, если дважды нажать кнопку "Домой".

Проблема в том, что поверх моего кода есть приложение, которое пользователь может установить в настройках, которое запускается при двойном нажатии кнопки "Домой". Так что мой код запущен И это приложение запущено. Кажется, что нет способа переопределить двойное нажатие кнопки "Домой" в системе (из того, что я прочитал в SO), но есть способ вызвать диалоговое окно выбора, в котором пользователь выбирает приложение для запуска при двойном нажатии, и подскажите ему выбрать "Нет"? Или что-то похожее на то, где пользователь вводит свои собственные настройки и призывает их изменить?

РЕДАКТИРОВАТЬ: В качестве альтернативы, если я МОГУ переопределить двойное нажатие кнопки "Домой" (то, что я, возможно, пропустил в SO), чтобы ничего не делать во время работы, как это можно сделать?

1 ответ

Решение

Следующий код, помещенный в onResume() операции по замене главного экрана, позволяет запускать блок кода, если дважды нажать последовательно на главном экране. int detectDoubleTap = 0; // Определяем это либо как статическую переменную во внешнем классе, либо в onCreate() и делаем переменную глобальной

if (System.currentTimeMillis() - detectDoubleTap < 250) {
    // Code to be run on double tap
}
detectDoubleTap = System.currentTimeMillis();

Хотя это работает нормально, не кажется (в ответ на мой вопрос), что есть какой-либо способ принудительно переопределить то, что пользователь настроил в качестве приложения для запуска с двойным касанием. Так что, если есть приложение, которое запускается при двойном нажатии, приведенный выше код будет запущен, и приложение запустится.

Другие вопросы по тегам