Попытка поймать Volume onKeyLongPress () не работает

Я пытаюсь заставить мое приложение реагировать на длинное нажатие клавиши на томе вниз с помощью следующего кода:

public boolean onKeyLongPress(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { Log.w("myApp", "LONG PRESS"); } return super.onKeyLongPress(keyCode, event); } 

Тем не менее, он только спамает кучу onKeyPress() событий для уменьшения громкости, а onKeyLongPress() никогда не onKeyLongPress() . Мое намерение состоит в том, чтобы оставить громкость «вниз» и «короткие» нажатия в одиночку, и мое приложение реагирует по-разному на громкость.
Может ли кто-нибудь указать, что мне не хватает?

    Вы почти там. Вам нужно обнаружить одно и то же ключевое событие в обработчике onKeyPress и начать отслеживать его, чтобы длительное нажатие могло работать. Вот код, который вам нужен:

     @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } 
    Intereting Posts
    Основной поток, блокирующий поток веб-приложений Android Можно ли вводить код в приложение для Android? Выберите каталог / файл с помощью Intent.ACTION_CREATE_DOCUMENT (Storage Access Framework) Android – В чем разница между передним и фоновым сервисами? Частота обновления виджета Android 0, что это на самом деле означает? Плохой магический номер для Bundle в Android Android BatteryManager возвращает только 1 Пользовательские полосы хода и измерительные приборы Почему данные байта изображения в onPictureTaken приводят к зеркальному отображению? Каковы фактические значения времени мс для констант анимации Android? Ошибка NoClassDefFound при импорте проекта из git Редактировать андроид девятьpatch png программно (изменить цвет) Не удалось изменить курсор Up рядом с пиктограммой приложения в ActionBar в моем навигационном ящике Какой компилятор использует Android NDK? После обновления библиотеки поддержки