2013-09-30 35 views
0

即時試圖覆蓋使用網頁視圖一個機器人應用的輸入;它進入我的onkeydown,因爲我得到的日誌,但它沒有做任何事情,我都試過了,Overryride按鍵時

也許它,因爲它的網頁視圖?web視圖是在事件發生後裝?

這裏是我的代碼:

public class MainActivity extends Activity{ 


private WebView mWebView; 

@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.activity_main); 

    //asociamos 
    mWebView = (WebView) findViewById(R.id.webview); 

    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.getSettings().setPluginState(WebSettings.PluginState.ON); 
    mWebView.setFocusable(true); 
    mWebView.getSettings().setLoadWithOverviewMode(true); 
    mWebView.getSettings().setUseWideViewPort(true); 
    mWebView.getSettings().setBuiltInZoomControls(true); 
    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    mWebView.setScrollbarFadingEnabled(false); 

    //cargo un .html que he situado en la carpeta asset/ del proyecto 
    mWebView.loadUrl("localUrl webview"); 
    mWebView.requestFocusFromTouch(); 
    mWebView.requestFocus(); 


} 


public boolean onKeyDown(int keyCode, KeyEvent event) { 
    Log.v("keyEntra",String.valueOf(keyCode)); 
    mWebView.requestFocus(); 
     int mappedKey = keyCode; 
    if (keyCode == KeyEvent.KEYCODE_HOME) { 
     mappedKey = KeyEvent.KEYCODE_DPAD_LEFT; 
     super.onKeyDown(mappedKey, event); 
     return true; 
    } 
    else if(keyCode == KeyEvent.KEYCODE_BACK){ 
     mappedKey = KeyEvent.KEYCODE_A; 
    Log.v("keyNew",String.valueOf(mappedKey)); 
    super.onKeyDown(mappedKey, event); 
    return true; 
    } 
    else{ 
     return super.onKeyDown(keyCode, event); 
    } 

} 

感謝,

回答

0

好吧,我終於找到一個解決方案,只是用儀器

public static void simulateKey(final int KeyCode) { 

    new Thread() { 
     @Override 
     public void run() { 
      try { 
       Instrumentation inst = new Instrumentation(); 
       inst.sendKeyDownUpSync(KeyCode); 
      } catch (Exception e) { 
       Log.e("Exception when sendKeyDownUpSync", e.toString()); 
      } 
     } 

    }.start(); 
}