feat(remote): 修复键盘输入映射并重构连接流程
- Android端注入按键时显式设置SOURCE_KEYBOARD,修复IME丢弃事件导致输入框无法输入文字的问题 - Flutter端新增Flutter逻辑键到Android keyCode的转换映射,避免功能键误触发 - 重构RemoteController,分离信令连接与远程控制逻辑,支持设备列表选择与配对码兑换 - AuthRepository接口新增getBindings、getOnlineDevices、redeemPairingCode方法 - DioAuthRepository实现401自动刷新token重试机制 - ConnectionSessionState扩展设备列表、在线状态、配对码等状态字段
This commit is contained in:
@@ -117,7 +117,12 @@ public class SystemInputUtils implements InputExecutor {
|
||||
}
|
||||
|
||||
private void injectKeyEvent(long downTime, long eventTime, int action, int keyCode) {
|
||||
// 第 5 个参数 metaState=0;最后一个参数 flags=0。
|
||||
// 关键:必须显式设置事件来源为键盘(SOURCE_KEYBOARD),否则通过 InputManager
|
||||
// 注入的按键事件会被系统/输入法(IME)丢弃,导致焦点在 EditText 等输入框时
|
||||
// 收不到字符输入。
|
||||
KeyEvent event = new KeyEvent(downTime, eventTime, action, keyCode, 0);
|
||||
event.setSource(InputDevice.SOURCE_KEYBOARD);
|
||||
try {
|
||||
mInjectInputEventMethod.invoke(mInputManager, event, INJECT_INPUT_EVENT_MODE_ASYNC);
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user