BLE触摸板DispatchTouchEvent到整个应用程序

问题描述

我正在研究可产生各种触摸事件和手势的BLE触摸板。目前,我不处理手势。我已经编写了一个后台服务来获取触摸事件的位置,将它们转换为MotionEvents,然后使用view.disptachTouchEvents(motionEvent)将它们分派到活动的rootView对象。由于这些事件已分派到rootView,因此事件会滴落到正确的视图中,以便它们进行处理。这很好。但是,我有两个问题需要进一步改进。

  1. 应用程序中有多个Activity对象。当前,每个活动都需要为后台服务(库)传递其自己的rootView到disptachTouchEvents。如何将这些事件调度到全局的Window或WindowManager而不是rootView,这样我就不需要将事件调度到单个的根视图了?

  2. 此外,如何将触摸事件发送到应用程序外部的活动,例如警报,共享(带有FB,SMS等),后退按钮,....,其中应用程序开发人员的控制较少?

当前代码如下

private void dispatchEvent (View rootView,float x1,float y1,int actionType){
    MotionEvent motionEvent = MotionEvent.obtain(
        SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),actionType,// MotionEvent.ACTION_UP,MotionEvent.ACTION_DOWN,...
        (float) x1*xRatio,// map touchpad to viewport
        (float) y1*yRatio,0 // metastate;
    );
    rootView.dispatchTouchEvent(motionEvent);
    //frameLayout.dispatchTouchEvent(motionEvent); 
}

感谢您的建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...