2013-08-14 2 views
1

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

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

EDIT: В противном случае, если я МОЖЕТ переопределить двойной щелчок кнопки «Главная» (что-то, что я, возможно, пропустил), чтобы ничего не делать во время моей активности, как это можно сделать?

ответ

2

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

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

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