Androidのエミュレータで,端末でALTキーを押した状態を再現する方法.IS01,Lynxなどのキーボード搭載端末向けに開発するときに困ったので記録します

エミュレータでALTキーを使う方法

IS01,Lynxなどのキーボード搭載端末向けに,キーボードショートカットを実装しようとしました. パネルやボタンをタッチしなくても,キーボードの操作で機能を呼び出したりできるというものです.

自分のHT-03Aにはキーボードがないので,エミュレータで動作確認するしかないのですが,ここで困りました.

Androidのエミュレータには,キーボードが表示されますが,キーボードをマウスでクリックするという操作だと,

  • ALT + i

のようにALTキーを押しながら別のキー(i)を押すという同時押しの動作ができないのです. 1個のマウスで画面上の別の位置を同時にクリックするというのは,無理です.

emu_alt1.png

Webを検索しても情報が見つからないので,エミュレータをプチプチいじっていたら,結局以下の方法でできました.

  • マウスカーソルをエミュレータのALTキーの上に当てる
  • マウスの左ボタンを押しながら,PCのキーボードのiキーを押す

ALTキーはエミュレータが表示しているソフトウェアキーボードで押すが, 同時に押すもう一つのキーは,PC本体のキーボードで押すというわけです

ALTキーもPC側で押して済むなら簡単なのですが,PC側のALTキーは押してもエミュレータ内部に伝わらないようです.

ちなみにキー押下イベントのハンドリングは,こんな感じです.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
	int metaState = event.getMetaState());

	if ((metaState & KeyEvent.META_ALT_ON) != 0) {
		if (keyCode == KeyEvent.KEYCODE_I) {
			// ALT+I が押された場合の処理
			// ・・・
			return true;
		}
	}
	return super.onKeyDown(keyCode, event);
}
ただし,実機での動作は確認できていませんので,怪しいです...


© 2024 KMIソフトウェア