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"/> 

谢谢。

  • 当我尝试在Mac OS X上运行Android Emulator时,我得到'Command Not Found'
  • adb pull - >找不到设备
  • Android系统属性 - 在命令行上取消设置
  • 从php使用shell脚本生成android apk?
  • 通过adb shell服务调用isms Android 4.1.2发送短信
  • 如何解决Android ADB主机设备中未经授权的ADB设备?
  • 如何使用sendevent或其他方式模拟后台服务的触摸?
  • 如何在Android中使用crontab?
  • 设置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框