2012-05-21 2 views
0

Может кто-нибудь, пожалуйста, покажет мне пример кода о том, как получить длинный щелчок (например, 2 секунды) на аппаратном ключе вверх?Android - нажатие кнопки увеличения громкости

Спасибо :)

EDIT

Класс, который я хочу, чтобы захватить длинный щелчок является служба. Как я могу это сделать?

ответ

2

Если вам просто нужно, чтобы захватить длинные клики, этот ответ может быть полезным:

https://stackoverflow.com/a/5269673/1401257

EDIT:

Я никогда не пытался иметь ключ слушателя внутри службы, но с небольшой помощью от Google я нашел это: Volume change listener?

Похоже, что обычные ключевые события могут обрабатываться только из Деятельности. У меня нет времени, чтобы попробовать это самостоятельно, но для захвата длинных кликов можно было бы совместить ответ со ссылкой и ответить Луки. Из того, что я понимаю о BroadcastReceivers, вы хотели бы создать приемник, который уведомляет Сервис, когда кто-то нажимает кнопки регулировки громкости.

+0

Только секунда, если я хочу захватить это в службе, это не сработает. Как я могу это сделать? – arielschon12

+0

Как я могу сделать эту работу внутри Сервиса? – arielschon12

1

При желании вы могли бы сделать что-то вроде этого:

if(clickedDown) { 
if(beginningTime + 2000 < System.currentTimeMillis()) { 
// Ok, the button has been clicked down for 2 seconds 
} 
} 
else { 
beginningTime = System.currentTimeMillis(); 
} 

Применив что-то вроде этого, вы будете в состоянии определить количество времени, чтобы ждать.

+0

Ответ выше решил, но можете ли вы, пожалуйста, посмотреть на мой комментарий и попытаться помочь мне? – arielschon12

Смежные вопросы