Android

问题描述:

中的电源按钮和音量增加按钮的组合像电源按钮和音量减小按钮的组合 - 截取手机的屏幕...类似地,我试图访问音量和电源按钮在我的应用程序长按键并给出一个捷径。这可能吗?Android

我知道如何分别访问两个按钮,但不能同时组合。

 @Override 
     public boolean onKeyLongPress(int keyCode, KeyEvent event) { 

    if (keyCode == KeyEvent.KEYCODE_POWER){ 
     Log.w("LongPress", "power LONG PRESS"); 
    } 

       if (keyCode == KeyEvent.KEYCODE_VOLUME_UP){ 
     Log.w("LongPress", "Volume Up LONG PRESS"); 
    } 

    return super.onKeyLongPress(keyCode, event); 
    } 

    @Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_VOLUME_UP){ 
     event.startTracking(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
    } 

如何获得组合在这里完成“& &”不起作用?

+0

你需要跟踪哪个键不仅仅是在这一刻被压制的东西。 – 2013-03-24 02:26:09

+0

@MarcB如果你正在关注onKeyDown,那么我也添加了它。如果不同,你能告诉我吗? – TheDevMan 2013-03-24 03:31:35

+0

@TheDevMan:使用'onKeyUp'和'onKeyDown'的组合来检查哪些键被按下。 – JiTHiN 2013-03-25 05:44:14

我不明白下的Android程序,但我看到它使用Java类,那么试试这个

public class BitKeys implements KeyListener { 

    private BitSet keyBits = new BitSet(256); 

    @Override 
    public void keyPressed(final KeyEvent event) { 
     int keyCode = event.getKeyCode(); 
     keyBits.set(keyCode); 
    } 

    @Override 
    public void keyReleased(final KeyEvent event) { 
     int keyCode = event.getKeyCode(); 
     keyBits.clear(keyCode); 
    } 

    @Override 
    public void keyTyped(final KeyEvent event) { 
     // don't care 
    } 

    public boolean isKeyPressed(final int keyCode) { 
     return keyBits.get(keyCode); 
    } 

} 

我发现这个在这里: handle multiple key presses ignoring repeated key