Android“adbshellinputkeyevent KEYCODE_SEARCH”不起作用

我想在我的代码中使用ADB触发KEYCODE_SEARCH事件。 当我执行这个命令时,我无法在键盘上看到任何动作。 但是,如果我给"adb shell input keyevent KEYCODE_1"它是完美的工作。 请给我任何解决scheme,使用ADB开火search事件。

而我现在的代码就像。

 editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) { performSearch(); return true; } return false; } }); <EditText android:imeOptions="actionSearch" android:inputType="text"/> 

谢谢。

Solutions Collecting From Web of "Android“adbshellinputkeyevent KEYCODE_SEARCH”不起作用"

设置android:imeOptions="actionSearch"不会使您的编辑文本接收KEYCODE_SEARCH事件。

正如Android参考资料所述 :

机器人:imeOptions
您可以在与编辑器关联的IME中启用其他function,以改善与应用程序的集成。 这里的常量对应于由imeOptions定义的常量。

如果你想接收KEYCODE_SEARCH发送的KEYCODE_SEARCH ,你需要在你的Activity重写onKeyDown ,并手动调用onEditorAction

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_SEARCH){ editText.onEditorAction(EditorInfo.IME_ACTION_SEARCH); return true; }else{ return super.onKeyDown(keyCode, event); } } 

请注意,当KEYCODE_SEARCH事件发送时,其他应用程序不会触发search,他们只是将焦点放在search框