探索安卓设备如何优雅远程Windows设备

前言

在安卓设备上使用微软官方的rdp,一些快捷键会被安卓系统响应,比如win+tab alt+tab之类的。我想在外使用安卓设备远程台式机、代替笔记本。这次研究了一下通过无障碍响应这些快捷键,试着改造一下开源的moonlight。

探索过程

之前一直以为这些快捷键只能被安卓系统响应,甚至还想买些Windows arm设备作为便携的远程工具。昨天逛GitHub的时候,看到有人在ardp的repo下提出可以用android的accessibility消费这些按键并发送给远程主机,参考repo(https://github.com/lyc8503/remote-desktop-clients)。

首先试着用这位bro的修改版编译了一下,在打开无障碍功能之后确实能够捕获这些快捷键,但是感觉ardp操作起来没那么丝滑,在局域网的情况下甚至有些撕裂。
想到之前有试着用moonlight串流游戏,试过键鼠操作还不错的样子,于是这波就打算缝合一波moonlight的代码。
看了moonlight的代码后,看起来只需要将accessiblity服务接收到的keyevent传入moonlight的handleKeyDown跟handleKeyUp即可。响应键盘事件的代码在com/limelight/ui/StreamView.java的onKeyPreIme方法。

缝合后的应用分享

现在的这个版本只是简单地缝合,未开启无障碍时没有响应键盘的事件,也非常干净,只是包名加了一下后缀,改了一下label做区分
链接:https://pan.baidu.com/s/11DTEzZDE-zem7fm-Rl9GLA
提取码:moon

作者

ZhongHuihong

发布于

2024-06-20

更新于

2024-06-22

许可协议