Androidのエミュレータで,端末でALTキーを押した状態を再現する方法.IS01,Lynxなどのキーボード搭載端末向けに開発するときに困ったので記録します
エミュレータでALTキーを使う方法
IS01,Lynxなどのキーボード搭載端末向けに,キーボードショートカットを実装しようとしました.
パネルやボタンをタッチしなくても,キーボードの操作で機能を呼び出したりできるというものです.
自分のHT-03Aにはキーボードがないので,エミュレータで動作確認するしかないのですが,ここで困りました.
Androidのエミュレータには,キーボードが表示されますが,キーボードをマウスでクリックするという操作だと,
のようにALTキーを押しながら別のキー(i)を押すという同時押しの動作ができないのです.
1個のマウスで画面上の別の位置を同時にクリックするというのは,無理です.
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);
}
ただし,実機での動作は確認できていませんので,怪しいです...