• MTK 自定义按键添加广播


    一、给自定义按键添加广播

    修改PhoneWindowManager.java中的interceptKeyBeforeDispatching方法

    /frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

    @Override
      public long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) {
        final boolean keyguardOn = keyguardOn();
        final int keyCode = event.getKeyCode();
        final int repeatCount = event.getRepeatCount();
        final int metaState = event.getMetaState();
        final int flags = event.getFlags();
        final boolean down = event.getAction() == KeyEvent.ACTION_DOWN;
        final boolean canceled = event.isCanceled();
        final boolean longPress = (flags & KeyEvent.FLAG_LONG_PRESS) != 0;
        final boolean virtualKey = event.getDeviceId() == KeyCharacterMap.VIRTUAL_KEYBOARD;
        final String isCitKeyTest=SystemProperties.get("persist.sys.startCitKeyTest");
     
     
         
        //添加自定义按键广播----开始
        switch (keyCode)
          {
            case 135:
            case 136:
            case 137:
            case 139:
            {
              if (repeatCount == 0) {
                 
                Intent myKeyIntent = new Intent();
                 
                 
                if(down)
                {
                  myKeyIntent.setAction("com.rscja.android.KEY_DOWN");
                }
                else
                {
                  myKeyIntent.setAction("com.rscja.android.KEY_UP");
                }
                 
               
                myKeyIntent.putExtra("keycode", keyCode);
                 
                mContext.sendBroadcastAsUser(myKeyIntent, UserHandle.ALL); 
                 
                 
               
              }
            }
             
             
             
              break;
          }
           
          //添加自定义按键广播----结束
            // myron add robot wakeup key
            if (keyCode == 0) {
                Intent myronIntent = new Intent();
                if(down) {
                    myronIntent.setAction("com.yxrobot.KEY_DOWN");
                } else {
                    myronIntent.setAction("com.yxrobo.KEY_UP")
                }
                myronIntent.putExtra("keycode", keycode);
                mContext.sendBroadcastAsUser(myronIntent, UserHandle, ALL);
            }
  • 相关阅读:
    linux 内核升级4.19
    监管对保险页面的要求
    软件测试-测试可交付成果
    软件测试架构思想
    dockerfile
    转载:.NET Core 图片操作在 Linux/Docker 下的坑
    docker build速度过慢问题
    .net 5 发布到 docker 或 docker 镜像方法
    Centos 安装 docker 教程
    DQL、DML、DDL、DCL全名是啥?
  • 原文地址:https://www.cnblogs.com/zxouxuewei/p/8259718.html
Copyright © 2020-2023  润新知