7

アプリでキーボードショートカットをサポートしたい。Asus Transformerキーを備えた外部キーボードCtrl(APIレベル11で利用可能)など、多くのデバイス。Ctrlキーがエミュレーターで機能するかどうかを確認するために、いくつかのコードを作成しました。

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if(Build.VERSION.SDK_INT>10 &&
        event.getAction()==KeyEvent.ACTION_DOWN &&
        event.isCtrlPressed()){
    String actionType="NONE";
    final int keyCode = event.getKeyCode();
    switch(keyCode){
    case KeyEvent.KEYCODE_C:
        actionType = "COPY";
        break;
    case KeyEvent.KEYCODE_V:
        actionType = "PASTE";
        break;
    case KeyEvent.KEYCODE_X:
        actionType = "CUT";
        break;
    case KeyEvent.KEYCODE_R:
        actionType = "REFRESH";
        break;
    case KeyEvent.KEYCODE_A:
        actionType = "SELECT ALL";
        break;
    }
    Toast.makeText(ctx, actionType, Toast.LENGTH_SHORT).show();
    return true;
    }
    return super.dispatchKeyEvent(event);
}

残念ながら、エミュレータでは機能せず、実際のハードウェアでは確認できません。

私は2つの質問があります:
1。それは次のようなデバイスで動作しますAsus Transformerか?
2.Ctrlエミュレータでキーが機能しないのはなぜですか?

編集:私は自分の問題に対する答えや解決策を見つけようとしましたが、GoogleもSOも助けにはなりませんでした。

4

1 に答える 1

1

1. Asus Transformerのようなデバイスで動作しますか?

物理キーボード( Asusの標準ドッキングステーション)を搭載したAsus Transformer TF101を確認しましたが、コードは正常に機能します。問題なく使用できると思います。

2.エミュレータでCTRLキーが機能しないのはなぜですか?

マッピングできるボタンのリストを見ると(たとえば、を使用してemulator -keyset)、エミュレータの現在のバージョンは直接キーマッピングをサポートしていないと思うCtrlので、ここでは運が悪いです。

于 2012-11-02T20:38:33.063 に答える