シャッターボタンに対応した時のメモです。
キーイベントについては、下記を参考にさせて頂きました。感謝です!!
ということで、下記のように対応しました。
private boolean keyFlag = true;
private boolean focusKeyFlag = true;
private boolean cameraKeyFlag = true;
--- 省略 ---
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_FOCUS:
// keyFlag は Down で イベントが飛び続けるのを防ぐため。
if(keyFlag && focusKeyFlag){
// オートフォーカスの処理を行う。オートフォーカスが終わった後に、focusKeyFlag を true にする。
focusKeyFlag = keyFlag = false;
}
return true;
case KeyEvent.KEYCODE_CAMERA:
if(cameraKeyFlag){
// シャッターを切る処理を行う。シャッターを切った後に、cameraKeyFlag を true にする。
cameraKeyFlag = false;
}
return true;
default:
return super.onKeyDown(keyCode, event);
}
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_FOCUS:
if(!keyFlag){
keyFlag = true;
}
break;
default:
break;
}
return super.onKeyUp(keyCode, event);
}
以下を制御するためにフラグが 3つもあります。力技です。
アップデート後、特にバグのご連絡も頂いていないので、これで大丈夫そうです。
http://web.dimension-maker.info/cgi-bin/mt/webdimensionmaker/230