Android"adb shell输入keyevent KEYCODE_SEARCH"不起作用

Bha*_*ina 18 keyboard shell android adb

我想在我的代码中KEYCODE_SEARCH使用fire 事件ADB.当我执行此命令时,我无法在键盘中看到任何操作.但如果我"adb shell input keyevent KEYCODE_1"认为它是完美的.请给我任何使用火灾搜索事件的解决方案ADB.

我目前的代码就像.

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"/>
Run Code Online (Sandbox Code Playgroud)

谢谢.

Mat*_*ini 9

该设置android:imeOptions="actionSearch"不允许您的编辑文本接收KEYCODE_SEARCH事件.

Android参考中所述:

android:imeOptions
可以在与编辑器关联的IME中启用的其他功能,以改善与应用程序的集成.这里的常量对应于imeOptions定义的常量.

如果你想收到KEYCODE_SEARCH来自亚行派你需要重写onKeyDownActivity和手动调用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);
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,其他应用程序在KEYCODE_SEARCH发送事件时不会触发搜索,只会将焦点放在搜索框上