gt9xx系列------实现实体按键的unpin解锁

2024-09-04 01:08

本文主要是介绍gt9xx系列------实现实体按键的unpin解锁,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  由于gt的虚拟按键的上报不是上报坐标而是类似电源按键的实体按键所以需要修改之前的unpin步骤


if ((( rawEvent->code==139)&&(rawEvent->value==1))||((rawEvent->code==158)&&(rawEvent->value==1)))  //有按键按下
{
if( unpinkey[0]==0)     //第一次数组0肯定为空,先存一个

ALOGD("matt-1  ");
unpinkey[0]=rawEvent->code;

}else   //第二步肯定是按键抬起或者按键按下,如果是按下,则存入第二个数组
{
ALOGD("matt-2");
  unpinkey[1]=rawEvent->code;
}

}




ALOGD("matt-rawEvent->value+1=%d ",rawEvent->value);
if ((( rawEvent->code==139)&&(rawEvent->value==0))||((rawEvent->code==158)&&(rawEvent->value==0)))  //有按键抬起则清除之前存的数组中的按键
{
if( unpinkey[0]==rawEvent->code)
{
ALOGD("matt-3");
unpinkey[0]=0;
}else
{
ALOGD("matt-4");
 unpinkey[1]=0;
}
}
//ALOGD("matt-unpinkey[0]->code=%d ,unpinkey[1]->code=%d,unpinkey[1]->value=%d,unpinkey[1]->value=%d",unpinkey[0]->code,unpinkey[0]->value,unpinkey[1]->code,unpinkey[1]->value);
  if((unpinkey[1]!=0)&&(unpinkey[0]!=0))
{
ALOGD("matt-5");
 for( ii=0;ii<2;ii++)
 {
 if(unpinkey[ii]==139)
  {
  scanCode=unpinkey[ii];
scanCodechange=187;
  }else
  {
scanCode=unpinkey[ii];
scanCodechange=4;
  }
     NotifyKeyArgs args(rawEvent->when, getDeviceId(), AINPUT_SOURCE_KEYBOARD, 2,0, 72, scanCodechange, scanCode, 0, rawEvent->when);
                                              getListener()->notifyKey(&args);
//     processKey(rawEvent->when, 1, unpinkey[ii], 0);    
 }
 ALOGD("matt-6");
if(ii >= 2) screen_unpin = true;
else screen_unpin = false;
}

if (screen_unpin&&(rawEvent->value==0)) 
{
ALOGD("matt-7");


if((rawEvent->code == 139)||(rawEvent->code == 158))
{
ALOGD("matt-8");
screen_unpin = false;
int current_keycode = 0;
int current_scancode = 0;
current_keycode = rawEvent->code;
if(current_keycode == 139)
{
ALOGD("matt-9");
processKey(rawEvent->when, 1, 158, 0);
}
else
{
ALOGD("matt-10");


processKey(rawEvent->when, 1, 139, 0);
}

}

}
         //matthew_xuan
        if (isKeyboardOrGamepadKey(scanCode)) {
#if DEBUG_VIRTUAL_KEYS_FT
ALOGD("KeyboardInputMapper::process: usageCode=%d, scanCode=%d",usageCode, scanCode);
#endif
            processKey(rawEvent->when, rawEvent->value != 0, scanCode, usageCode);
        }

这篇关于gt9xx系列------实现实体按键的unpin解锁的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1134560

相关文章

golang 对象池sync.Pool的实现

《golang对象池sync.Pool的实现》:本文主要介绍golang对象池sync.Pool的实现,用于缓存和复用临时对象,以减少内存分配和垃圾回收的压力,下面就来介绍一下,感兴趣的可以了解... 目录sync.Pool的用法原理sync.Pool 的使用示例sync.Pool 的使用场景注意sync.

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作

golang中slice扩容的具体实现

《golang中slice扩容的具体实现》Go语言中的切片扩容机制是Go运行时的一个关键部分,它确保切片在动态增加元素时能够高效地管理内存,本文主要介绍了golang中slice扩容的具体实现,感兴趣... 目录1. 切片扩容的触发append 函数的实现2. runtime.growslice 函数gro

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

MySQL数据库实现批量表分区完整示例

《MySQL数据库实现批量表分区完整示例》通俗地讲表分区是将一大表,根据条件分割成若干个小表,:本文主要介绍MySQL数据库实现批量表分区的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录一、表分区条件二、常规表和分区表的区别三、表分区的创建四、将既有表转换分区表脚本五、批量转换表为分区

Spring Boot 整合 Redis 实现数据缓存案例详解

《SpringBoot整合Redis实现数据缓存案例详解》Springboot缓存,默认使用的是ConcurrentMap的方式来实现的,然而我们在项目中并不会这么使用,本文介绍SpringB... 目录1.添加 Maven 依赖2.配置Redis属性3.创建 redisCacheManager4.使用Sp

Kali Linux安装实现教程(亲测有效)

《KaliLinux安装实现教程(亲测有效)》:本文主要介绍KaliLinux安装实现教程(亲测有效),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载二、安装总结一、下载1、点http://www.chinasem.cn击链接 Get Kali | Kal