サムスン ギャラクシー、アンドロイド 1.5。ユーザーがいつカメラボタンを離したかを検出しようとしています。ACTION_CAMERA_BUTTON インテントを取得し、それに付随する EXTRA_KEY_EVENT を調べるレシーバーがあります (レシーバーの onReceive() で) 次のコードを使用します。
@Override
public void onReceive(Context context, Intent intent) {
String intent_action = intent.getAction();
if (intent_action.equals(Intent.ACTION_CAMERA_BUTTON) ) {
abortBroadcast();
KeyEvent key = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if ( key.getAction() == KeyEvent.ACTION_DOWN )
Toast.makeText(context, "press", Toast.LENGTH_SHORT).show();
else if ( key.getAction() == KeyEvent.ACTION_UP )
Toast.makeText(context, "release", Toast.LENGTH_SHORT).show();
else if ( key.getAction() == KeyEvent.ACTION_MULTIPLE )
Toast.makeText(context, "multi", Toast.LENGTH_SHORT).show();
}
}
ボタンを押すと、「プレス」ポップアップのみが表示されます。
これは電話または Android の制限ですか? カメラキーのリリースを検出する別の方法はありますか?