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

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

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

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


person mike    schedule 14.08.2013    source источник


Ответы (1)


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

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

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

person mike    schedule 18.10.2013