Android 11 定制系统全局监听触摸事件接口

这篇具有很好参考价值的文章主要介绍了Android 11 定制系统全局监听触摸事件接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.定义创建aidl接口(由于需要回调这里优先需要增加一个回调接口 )

frameworks\base\core\java\android\app\IOnTouchListener.aidl

package android.app;

oneway interface IOnTouchListener {

     void onTouchEvent( int action);

}  

2.新增调用接口 在 base/core/java/android/view/IWindowManager.aidl

修改如下:

import android.app.IOnTouchListener;

...

 void registerIOnTouchListener(IOnTouchListener touchListener);
 

 void unregisterIOnTouchListener();
 

3.剩下就是在frameworks\base\services\core\java\com\android\server\wm\WindowManagerService.java

中修改 也是最重要的一步  

新增两个实现方法 :

     @Override
     public void registerIOnTouchListener(IOnTouchListener touchListener ){
        this.touchListener = touchListener ;
        pointerEventListener = new PointerEventListener() {
            @Override
            public void onPointerEvent(MotionEvent motionEvent) {
                if (ydTouchListener != null){
                    try{
                        touchListener .onTouchEvent(motionEvent.getAction());
                       }catch(RemoteException e){
                        Slog.e(TAG, "RemoteException: onTouchEvent " );
                       }
                }                  
            }
        };
        registerPointerEventListener(pointerEventListener, Display.DEFAULT_DISPLAY);
     }

     @Override
     public void unregisterIOnTouchListener(){
         if (touchListener != null) touchListener = null;
         if (pointerEventListener != null){
            unregisterPointerEventListener(pointerEventListener, Display.DEFAULT_DISPLAY);
            pointerEventListener=null;
        }
     }

4.上层APP调用:

//全局监听触摸事件
try {
    WindowManagerGlobal.getWindowManagerService().registerIOnTouchListener(new    IOnTouchListener.Stub() {
        @Override
        public void onTouchEvent(int action )  {
           Log.d("lmj","action :"+action);
        }
    });
} catch (Exception e) {
    e.printStackTrace();
}

全局监听接口定制就实现完成!!

由于此版本是针对Android11 做的定制!!其他版本可以有差异

觉得我写的好的兄弟 帮忙点个赞!!!

谢谢!!你们的肯定是我写下去的动力!!!!!!文章来源地址https://www.toymoban.com/news/detail-400794.html

到了这里,关于Android 11 定制系统全局监听触摸事件接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt实现全局鼠标事件监听器-Windows

    更多精彩内容 👉个人内容分类汇总 👈 👉Qt自定义模块、工具👈 Qt版本:V5.12.5 兼容系统: Windows:这里测试了Windows10,其它的版本没有测试; Linux:这里测试了ubuntu18.04、20.04,其它的没有测试; Mac:等啥时候我有了Mac电脑再说。 有时候我们想获取到【系统全局鼠标事件】

    2024年02月16日
    浏览(28)
  • Qt实现全局鼠标事件监听器-Linux

    更多精彩内容 👉个人内容分类汇总 👈 👉Qt自定义模块、工具👈 Qt版本:V5.12.5 兼容系统: Windows:这里测试了Windows10,其它的版本没有测试; Linux:这里测试了ubuntu18.04、20.04,其它的没有测试; Mac:等啥时候我有了Mac电脑再说。 有时候我们想获取到【系统全局鼠标事件】

    2024年02月11日
    浏览(30)
  • Qt实现全局键盘事件监听器-Windows

    更多精彩内容 👉个人内容分类汇总 👈 👉Qt自定义模块、工具👈 Qt版本:V5.12.5 兼容系统: Windows:这里测试了Windows10,其它的版本没有测试; Linux:这里测试了ubuntu18.04、20.04,其它的没有测试; Mac:等啥时候我有了Mac电脑再说。 有时候我们想获取到全局键盘事件,使用

    2024年02月09日
    浏览(34)
  • Android触摸事件分发机制(一)

    本文主要分享事件分发中的基本概念。 介绍负责参与分发事件的主要方法。 从这些方法的核心逻辑中,总结事件分发的规律。 被分发的对象是那些?被分发的对象是用户触摸屏幕而产生的点击事件,事件主要包括:按 下、滑动、抬起与取消。这些事件被封装成 MotionEvent 对

    2024年02月15日
    浏览(23)
  • Activiti7流程结束监听事件中,抛出的异常无法被spring全局异常捕捉

    activiti7中,提供了 ProcessRuntimeEventListener 监听器,用于监听流程实例的结束事件 上述代码中,由于1/0会抛出运行时异常,理论上来说应该被我们的全局异常所捕获 实际情况是无法捕获 既然异常没有被一层一层的抛出去直到被全局异常捕获,那说明调用 ProcessCompleteListener.onE

    2024年02月06日
    浏览(35)
  • [Android 13]Input系列--触摸事件在应用进程的分发和处理

    hongxi.zhu 2023-7-21 Android 13 前面我们已经梳理了input事件在native层的传递,这一篇我们接着探索input事件在应用中的传递与处理,我们将按键事件和触摸事件分开梳理,这一篇就只涉及触摸事件。 一、事件的接收 从前面的篇幅我们知道,framework native层 InputDispatcher 向应用通过s

    2024年02月15日
    浏览(28)
  • Android-高级-UI-进阶之路-(二)-深入理解-Android-8-0-View-触摸事件分发机制,查漏补缺

    我们看到内部又调用了父类 dispatchTouchEvent 方法, 所以最终是交给 ViewGroup 顶级 View 来处理分发了。 顶级 View 对点击事件的分发过程 在上一小节中我们知道了一个事件的传递流程,这里我们就大致在回顾一下。首先点击事件到达顶级 ViewGroup 之后,会调用自身的 dispatchTouchE

    2024年04月14日
    浏览(61)
  • Android监听事件

    ​监听事件机制由事件源,事件和事件监听器三类对象组成,事件源一般就是activity中的UI控件。 下面引用别人整理的图来更加形象的表达这些关系。 ​事件监听机制的意义就是让事件源的行为委托给事件监听器,让监听器控制事件的发生。 ​ 通过内部类实现 通过匿名内部

    2023年04月26日
    浏览(67)
  • systemserver的inputdispatcher直接产生CANCEL事件原理分析-讨厌的android触摸面试题

    上一个blog已经重点讲解了app层面自己产生的Cancel触摸事件,大概产生的原理如下: 上一个blog地址:https://blog.csdn.net/learnframework/article/details/124086882 即可以看出来,在服务端systemserver其实传递的触摸事件依然是move,只是move事件到了app端后,由于app端自己的业务把这个传递的

    2024年02月09日
    浏览(27)
  • android鼠标滚轮事件监听方法

    2024年02月08日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包