Попробуйте установить options.AutomaticChallenge = true;
в настройках куки, и оно должно работать.
options.AutomaticAuthentication
был разделен на options.AutomaticAuthenticate
и options.AutomaticChallenge
. Если для последнего оставлено значение false
, возникает исключение, поскольку промежуточное программное обеспечение для аутентификации не обрабатывает вызов, примененный фильтром авторизации.
В вашем примере вам нужно вернуть true
, чтобы он знал, что вы «поглотили» событие. Примерно так:
videoPreview.setOnKeyListener(new OnKeyListener(){
public boolean onKey(View v, int keyCode, KeyEvent event){
if(event.getAction() == KeyEvent.ACTION_DOWN) {
switch(keyCode) {
case KeyEvent.KEYCODE_CAMERA:
//videoPreview.onCapture(settings);
onCaptureButton();
/* ... */
return true;
}
}
return false;
}
});
Это также будет работать, только если videoPreview
(или дочерний элемент) имеет фокус. Таким образом, вы можете либо установить для него фокус по умолчанию:
@Override
public void onResume() {
/* ... */
videoPreview.requestFocus();
super.onResume();
}
, либо (предпочтительно) поместить слушателя на элемент верхнего уровня (например, LinearLayout
, RelativeLayout
и т. Д.) .
Вы забыли вернуть true
в вашем случае ветвь KeyEvent.KEYCODE_CAMERA
. Если вы вернете true, это будет сигналом для Android, что вы использовали ключевое событие, и приложение Camera не должно запускаться. Постоянно возвращая false, все ключевые события передаются обработчикам по умолчанию.
простой способ отключить кнопку камеры (или отреагировать на щелчок) - это добавить к своему действию следующее:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_CAMERA) {
return true; // do nothing on camera button
}
return super.onKeyDown(keyCode, event);
}