[android][aznyan]キーコード(主にCtrlキー)を取得してみる

Posted September 13th, 2010 in General. Tagged: , , .

Dynabook AZ(#aznyan) の Ctrlキーの何たるかを知りたい。

準備

  • Activity.findViewById() でIDからビューオブジェクトとれる
  • 実機でデバッグするには AndroidManifest.xml に android:debuggable=”true” を追加する

キーイベントの処理

  • キーイベントをフックして、文字コードとMetaキー状況を表示してみる
    // dispatchKeyEvent()を実装してフックする
    public boolean dispatchKeyEvent(KeyEvent e) {
        if (e.getAction() == KeyEvent.ACTION_UP) {
        	// 文字コード取得は getKeyCode()
        	Integer code = new Integer(e.getKeyCode());
        	// メタキーの押下状況を得るには getMetaState()
        	Integer meta = new Integer(e.getMetaState());
                // Activity.findViewById() でIDからビューオブジェクトとれる
        	TextView t = (TextView)this.findViewById(R.id.textview);
        	// 画面に文字コードとmeta stateを表示してみる
        	t.setText(code.toString()+","+meta.toString());
        }
        // 自前処理したら親にも渡す
        return super.dispatchKeyEvent(e);
    }
  • #aznyan で Ctrlキーを押すと、getMetaState()が 0×8 になるようだ。SDK referenceにはないよ。
  • Ctrlキー自身のキーコードは 0x5d。ないよ。
  • これで emacs操作風エディタできるかもね。

参考

関連情報

Posted September 13th, 2010 in General. Tagged: , , .

Comments are closed.


track feed