开发中遇到这样的问题,想实现一个后台服务监控用户所有的操作。
最开始我用Runtime运行getevent命令来监控,发现的确是可行的,但是无法做到实时。并不是每次操作都会有信息反馈给你。不同的设备的情况还不同,有的设备需要操作2次事件,才会反馈信息给你,有的设备,需要操作很多次才一起把信息反馈给你。原因在于,反馈的信息会有一个缓存,缓存满了,你才会输出到流里面,你才可以读到。希望有大牛有更好的方法解决这个后台服务监控操作的问题。
有root权限,如何实现后台服务监控所有按键事件
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-09 10:30关注
如果你的设备是 Android 系统,可以尝试使用 Android 的 InputEvent 类,它可以帮助你监控系统的按键事件。
你需要在 AndroidManifest.xml 中声明一个权限:
<uses-permission android:name="android.permission.READ_INPUT_STATE" />
然后,你就可以使用 InputEvent 类来读取系统的按键事件了。
例如,你可以在后台服务中这样写:
InputEvent event; while ((event = InputEvent.getInputEvent()) != null) { // 处理事件 }
这样,你就可以在后台服务中实时监控按键事件了。
不过,这种方法的缺点是,你需要在系统中注册一个服务,并且这个服务需要拥有许多特殊的权限,比如 READ_INPUT_STATE 权限。这可能会带来安全风险,因此应该谨慎使用。
如果你的设备是其他操作系统,可以尝试使用系统提供的相应 API 来实现类似的功能。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 spring后端vue前端
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题