java - 将滚动事件发送到另一个应用程序

标签 java android

我认为这个问题有点疯狂,我基本上想将滚动事件从我的应用程序发送到另一个应用程序(例如chrome)。所以基本上,如果 chrome 打开并且当用户按下音量向上或向下按钮时,我的后台 Activity 会监听该按钮事件,如果它是向上事件,那么它将向上或向下滚动 chrome 打开的网页。我不确定这是否可能,因为我正在阅读谷歌的一些文档,它们都说我们需要 root 权限才能将事件从一个应用程序发送到另一个应用程序。我还没有任何代码。那么有人知道这可以通过 android api 实现吗?

谢谢

最佳答案

我无法在 chrome 环境中回答。但是,您基本上可以序列化您需要的内容,并通过 Intent 系统将其发送到另一个应用程序。

例如,在您的第一个应用程序中,您收到触摸事件

boolean onTouch(MotionEvent event){
    if(event.getActionMasked() == MotionEvent.ACTION_UP){
        Intent startOtherApplication = new Intent();
        startOtherApplication.putExtra("ACTION_UP_X",event.getX());
        startOtherApplication.putExtra("ACTION_UP_Y",event.getY());
        startOtherApplication.setComponent(new ComponentName("com.your.other.application", "com.your.other.application.ActivityYouWantToHandleTouch"));
        startActivity(intent);
    }
}

然后,您可以在其他应用程序的 Activity (ActivityYouWantToHandleTouch) 中提取 Intent 。

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    Intent fetchedIntent = getIntent();
    boolean hasUpAction = false;        
    int x = 0;
    int y = 0;        
    if(fetchedIntent != null){
             hasUpAction = (fetchedIntent.getExtra("ACTION_UP_X")!=null);
             x = fetchedIntent.getExtra("ACTION_UP_X");
             y = fetchedIntent.getExtra("ACTION_UP_Y");

    }
}

关于java - 将滚动事件发送到另一个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46167386/

相关文章:

java - 从数据库加载的 @NodeEntity 不完整

java - 我的 XOR 加密的 java 类实现出了问题

java - 仅在(某些)IDE 中发生 NoSuchMethodError

java - 从用户邮箱生成代码生成链接然后发送

Android Kotlin Gson 慢速Json反序列化

android - 如何在 map 上跟踪和显示用户的位置

android - 如何通过框架API或任何其他有效方法查找VPN连接状态?

java 将对象转换为 double 组

android - 向 textView android 添加更多文本

android - 如何检查一个数组是否包含另一个数组的值?