Я пытаюсь заставить приложение делать снимок при нажатии кнопок громкости, как в снэпчате и т.п. Это приложение использует библиотеку CamaraX для функций камеры. Теперь, насколько я могу судить, CameraXView должен позволить мне установить onKeyListener, поскольку он расширяет frameLayout -> ViewGroup -> View. Однако все, что я пробовал до сих пор, не улавливает KeyEvents.
public class CameraXFragment extends LoggingFragment implements CameraFragment {
...
private CameraXView camera;
...
private void initControls() {
...
// This doesn't work
camera.setOnKeyListener((v, keyCode, event) -> {
Log.e(TAG, "KeyEvent please: " + keyCode);
return false;
});
...
// This does work
camera.setOnTouchListener((v, event) -> gestureDetector.onTouchEvent(event));
}
}
CameraXView имеет onTouchEvent
, поэтому я попытался добавить в него onKeyDown
, но это не похоже
camera.setOnTouchEventLister
не был добавлен мной, поэтому я не совсем понимаю, почему он работает, а мой - нет.