2012-09-03 14 views
6

Ich möchte, dass meine App Tastaturkürzel unterstützt. Viele Geräte wie Asus Transformer haben eine externe Tastatur, die Ctrl Schlüssel (verfügbar auf API Level 11) hat. Ich habe einige Codes gemacht, um zu überprüfen, ob Ctrl Schlüsselwerke in Emulator:Benutzerdefinierte Tastaturkürzel

@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); 
} 

Leider ist es nicht in Emulator funktioniert und ich kann es nicht auf echte Hardware überprüfen.

Ich habe zwei Fragen:
1. Würde es auf Gerät wie Asus Transformer funktionieren?
2. Warum Ctrl Schlüssel funktioniert nicht im Emulator?

EDIT: Ich habe versucht, eine Antwort oder eine Lösung für mein Problem zu finden, aber weder Google noch SO geholfen.

+0

es gibt keine CTRL-Taste auf den meisten Geräten (zumindest nicht auf den meisten Soft-Tastaturen) – njzk2

+0

Aber was ist mit Hardware-Tastaturen mit CTRL-Taste? – RedScorpio

Antwort

1

1. Würde es auf einem Gerät wie Asus Transformer funktionieren?

Ich habe auf meinen Asus Transformer TF101 überprüft mit physischer Tastatur (Standard-Dockingstation von Asus) und Ihr Code funktioniert in Ordnung. Ich denke du kannst es ohne Probleme benutzen.

2. Warum die CTRL-Taste im Emulator nicht funktioniert?

Mit Blick auf den list of buttons that can be mapped (zum Beispiel unter Verwendung von emulator -keyset) Ich glaube nicht, dass aktuelle Version des Emulators direkten Ctrl Key Mapping unterstützt, so dass Sie hier kein Glück.

+0

Danke für die Antwort! Das sind gute Neuigkeiten. Ich denke, dass es eine gute Idee ist, eine Option hinzuzufügen, um den Zusatzschlüssel zu ändern, um Unterstützung für jeden bereitzustellen, der über eine Tastatur für Android-Geräte verfügt. – RedScorpio