【问题标题】:Android: simulate scroll event to underlying screenAndroid:模拟滚动事件到底层屏幕
【发布时间】:2023-03-27 16:20:02
【问题描述】:

我正在尝试制作一个执行某种自动滚动的应用程序。我的想法是有一个带有两个按钮的浮动按钮(如 facebook 聊天头),一个用于向下滚动,一个用于向上滚动。

我面临的问题是,我不知道如何将触摸/滚动事件传递到底层屏幕。我找到了这个 github 要点:https://gist.github.com/oneyoung/a14c99856c3984263734,它使用 Context 将运动传递给,但由于我希望它传递到底层屏幕,我的猜测是 Context 会改变,这将不再起作用。

欢迎对此提出任何想法或指导我查看,提前致谢!

附言。这是一个屏幕截图,可以了解我目前拥有的内容:https://i.stack.imgur.com/B2w3z.jpg

【问题讨论】:

  • 能否提供布局,以便更好地理解结构。
  • 你的意思是xml文件中的布局?

标签: android


【解决方案1】:

send touch events to a device via adb

您可以通过 shell 向 android 发送触摸事件。我认为这与您想要的相似。

【讨论】:

  • 是的,需要将手机插入电脑,不是吗?我希望它是独立的,没有任何堵塞。
  • 我认为您不需要插入它。您可以使用输入实用程序从您的 android 应用程序发送事件
【解决方案2】:

好的,使用提供的 github gist,可以通过编程方式将用户输入发送到您的设备。至于 Context,Service 本身就是一个 Context,因此您可以将其作为参数传递给 onCreate 方法中的 Input 构造函数,如下所示:

public void onCreate() {
  super.onCreate();
  Input input = new Input(this);

但问题在于将输入传递到底层屏幕。这只有在系统权限的情况下才有可能,这意味着您需要 root 权限,因为它会引发错误:W/System.err: Caused by: java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-09
    • 2018-12-06
    • 1970-01-01
    • 2011-07-24
    • 2019-05-31
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    相关资源
    最近更新 更多