Intereting Posts
Ссылки на getCurrentActivity делают невозможным создание InputMethodService на Android Службы Google Play: как обращаться с устройствами, не имеющими Google Play? View.getDrawingCache () работает только один раз AndroidTest Ошибка при запуске из командной строки: app: connectedDebugAndroidTest Android Viewpager отскакивает на полстраницы Как отключить ландшафтный режим в режиме React Native Android dev? Странный отладочный вывод в приложении с момента обновления до Visual Studio 2017 15.3.0 Отзывчивый веб-сайт показывает на веб-представление из мобильной ширины (не реагирует) другим способом в Chrome выглядит хорошо Как получить правильные значения от монитора сердечного ритма Polar Как классифицировать Android-устройства на основе значений DPI? RegEx для поиска URL-адресов в HTML занимает 25 секунд в Java / Android Как скомпилировать Helloworld с исходным кодом Android Установка textColor с темы не работает только на HTC Desire HD Как добавить новые контакты в android Как вручную приостановить действие в Android?

Android BroadCastReceiver для увеличения громкости вверх и вниз

Если пользователь нажимает клавишу громкости вверх или вниз, можно ли ее обнаружить в моем широковещательном приемнике? Мне нужен полный код.

Вот мой фильтр Intent

IntentFilter filter = new IntentFilter(); filter.addAction("android.media.VOLUME_CHANGED_ACTION"); 

И мой метод onReceive

 public void onReceive(Context arg0, Intent intent) { KeyEvent ke = (KeyEvent)intent.getExtras().get(Intent.EXTRA_KEY_EVENT); if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) { System.out.println("I got volume up event"); }else if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) { System.out.println("I got volume key down event"); } } 

Это дает мне null KeyEvent … любую идею?

У этого намерения нет дополнительного EXTRA_KEY_EVENT. У него есть дополнительный файл android.media.EXTRA_VOLUME_STREAM_VALUE, который содержит новый том.

 int volume = (Integer)intent.getExtras().get("android.media.EXTRA_VOLUME_STREAM_VALUE"); 

Если вы сохраните старое значение, вы можете сделать вывод, был ли нажат громкость вверх или вниз.