将Scroll事件发送到另一个应用程序

时间:2017-09-12 03:22:03

标签: java android

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

由于

1 个答案:

答案 0 :(得分:1)

我不能在chrome的背景下回答。但是,您基本上可以序列化您需要的内容并通过意图系统将其发送到另一个应用程序。

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

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)中提取意图。

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");

    }
}