2010-05-26 2 views

ответ

2

Не знаю, если это единственный/правильный путь, но мне удалось сделать это таким образом:

public void longClickDpadCenter() throws Exception { 
    getInstrumentation().sendKeySync(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_CENTER)); 
    Thread.sleep(ViewConfiguration.get(mContext).getLongPressTimeout()); 
    getInstrumentation().sendKeySync(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_CENTER)); 
} 
+0

также может быть достигнуто с помощью следующего кода - KeyEvent событий = новый KeyEvent (простой, eventTime, KeyEvent.ACTION_DOWN, KeyEvent.KE YCODE_DPAD_CENTER, 1); getInstrumentation.sendKeySync (событие); – Vamsi

0

Вы можете попробовать вспомогательный метод ниже:

private void longPress(int key) { 
    long downTime = SystemClock.uptimeMillis(); 
    long eventTime = SystemClock.uptimeMillis(); 
    KeyEvent event1 = new KeyEvent(downTime, eventTime, KeyEvent.ACTION_DOWN, key, 0); 
    KeyEvent event2 = new KeyEvent(downTime, eventTime, KeyEvent.ACTION_DOWN, key, 1); 
    getInstrumentation().sendKeySync(event1); 
    getInstrumentation().sendKeySync(event2); 
} 

И пример использование:

longPress(KeyEvent.KEYCODE_ENTER);