2012-10-23 17 views
5

Düğme olan bir giriş aygıtı üzerinde çalışıyorum, hem kendim tarafından basıldığında hem ana düğme hem de aygıttaki diğer düğmeler için bir değiştirici olarak çalışıyorum.Bir Android değiştirici anahtarı bir eylemde geri dönüş yapabilir mi?

Ben diğer düğmelerle KCM dosyasında bunu biliyoruz ve bir şey gibi:

key ESCAPE { 
    base:        fallback BACK 
    alt, meta:       fallback HOME 
    ctrl:        fallback MENU 
} 

gibi bir şey olması mümkün mü: o yüzden basabilirsiniz o

key CTRL_LEFT { 
    base:        fallback HOME 
    {SOMETHING HERE}:     CTRL_LEFT 
} 

başka bir düğmeyle bu düğmeyi ve HOME'da geri çekilmemesini mi istiyorsunuz?

Şimdiden teşekkürler! : D

cevap

1

Bu özellik sistem düzeyinde mümkün değildir: Tüm seçeneklerin listesine ulaşmak için lütfen http://source.android.com/tech/input/key-character-map-files.html adresine bakın. Bir uygulama düzeyinde olmasını istiyorsanız aşağıdaki gibi

Ancak, bunu içinde programlayabilirdik: Sonra

import android.view.KeyEvent; 

private boolean home = false; 

public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if (event.getScanCode() == 29)  //29 == CTRL_LEFT 
    home = true;  //if we release this button, HOME needs to be invoked 
    else home = false; //so CTRL_LEFT was used as a modifier: no need to invoke HOME 

    //allow the system to pass key handling to the next listener 
    return super.onKeyUp(keyCode, event); 
} 

public boolean onKeyUp(int keyCode, KeyEvent event) 
{ 
    if (event.getScanCode() == 29 && home == true) 
    { 
    super.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME)); 
    return true;  //so we absorb the event 
    } 
    return super.onKeyUp(keyCode, event); 
} 

sürece bu uygulama genellikle (tuş vuruşlarını almak üzere ayarlanmış olduğundan gizlilik sorunu kendiniz için kodlamadığınız sürece), tuş vuruşlarını işleyebilir ve gerektiğinde HOME düğmesini gönderebilir.

böylece devam etmeye karar verirseniz size kodundan

base:        fallback HOME 

kaldırmak gerekir.

İlgili konular