2013-09-30 36 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(); 
}