feat(remote): 修复键盘输入映射并重构连接流程

- Android端注入按键时显式设置SOURCE_KEYBOARD,修复IME丢弃事件导致输入框无法输入文字的问题
- Flutter端新增Flutter逻辑键到Android keyCode的转换映射,避免功能键误触发
- 重构RemoteController,分离信令连接与远程控制逻辑,支持设备列表选择与配对码兑换
- AuthRepository接口新增getBindings、getOnlineDevices、redeemPairingCode方法
- DioAuthRepository实现401自动刷新token重试机制
- ConnectionSessionState扩展设备列表、在线状态、配对码等状态字段
This commit is contained in:
TongTongStudio
2026-08-03 20:22:29 +08:00
parent 79cffcb041
commit e1de4c8170
21 changed files with 1529 additions and 703 deletions

View File

@@ -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) {