То, что я пытаюсь сделать, заключается в том, чтобы улавливать кнопки увеличения и уменьшения громкости на lockscreen на Android 4.4.Обработка смены объема на экране блокировки Android?
Google Cast Design Checklist документ описывает требование блокировки экрана «Обеспечить доступ к регулятору громкости с помощью аппаратных кнопок». Я пробовал различные способы обработки кнопок аппаратного тома на экране блокировки, но никто из них не работал.
OnKeyDown/dispatchKeyEvent - Я попытался переопределить OnKeyDown, а также методы dispatchKeyEvent на активность, но ни один из них не выполняются на заблокированном экране, эти только работает, когда мое приложение ориентирована.
Settings.System.CONTENT_URI/ContentObserver - Регистрация наблюдателя контента на распознавателе контента основного вида деятельности в это поймать настройки системы изменения, но это также не происходит на заблокированном экране.
android.intent.action.MEDIA_BUTTON - Имея этот фильтр в манифесте, я могу получить воспроизведения/паузы действия с экрана блокировки, однако никаких изменений объема событий.
android.media.VOLUME_CHANGED_ACTION - Имея этот фильтр в манифесте, это событие получило в моем BroadcastReceiver, к сожалению, его дополнительные значения не изменятся на заблокированном экране. Когда я нажимаю кнопку регулировки громкости, возвращаемый файл android.media.EXTRA_VOLUME_STREAM_VALUE остается тем же (то есть всегда 1), даже если действие CHANGED принимается моим широковещательным приемником.
CastVideos-андроид - приложение ссылки андроида отправителя кажется, чтобы иметь возможность контролировать громкость приемника, даже если приободрить отправитель блокировку экрана, однако даже после ввода breakpoitns повсюду вокруг Cast.CastApi.setVolume() , их не собирают. Таким образом, кажется, что команда отправляется в приемник откуда-то, куда я не могу найти.
Я могу также увидеть некоторые другие приложения в состоянии поймать HW клавишу регулировки громкости, т.е. Play Music приложения. Поэтому мое устройство, безусловно, способно ...
Может ли кто-нибудь предложить любое рабочее решение?
Для CastVideos-Android, он обрабатывается в CastCompanionLibrary. Я считаю, что [VideoCastManager] (https://github.com/googlecast/CastCompanionLibrary-android/blob/master/src/com/google/android/libraries/cast/companionlibrary/cast/VideoCastManager.java). – Andy