`
asdf314159265
  • 浏览: 246923 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Android原生C语言捕获按键

 
阅读更多
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <linux/input.h>


static int event0_fd = -1;
struct input_event ev0[64];

//for handling event0, mouse/key/ts
static int handle_event0() {
int button = 0, realx = 0, realy = 0, i, rd;

rd = read(event0_fd, ev0, sizeof(struct input_event) * 64);
if ( rd < sizeof(struct input_event)) return 0;

for (i = 0; i < rd / sizeof(struct input_event); i++) {
printf("", ev0[i].type, ev0[i].code, ev0[i].value);
if (ev0[i].type == 3 && ev0[i].code == 0)
realx = ev0[i].value;
else if (ev0[i].type == 3 && ev0[i].code == 1)
realy = ev0[i].value;
else if (ev0[i].type == 1) {
if (ev0[i].code == 158) {
//if key esc then exit
return 0;
}
} else if (ev0[i].type == 0 && ev0[i].code == 0 && ev0[i].value == 0) {
realx = 0, realy = 0;
}
printf("event(%d): type: %d; code: %3d; value: %3d;\n", i,ev0[i].type, ev0[i].code, ev0[i].value);
}

return 1;
}

int main(void) {
int done = 1;
printf("sizeof(struct input_event) = %d\n", sizeof(struct input_event));

event0_fd = open("/dev/input/event1", O_RDWR);

if ( event0_fd < 0 )
return -1;

while ( done ) {
printf("begin handel_event0…\n");
done = handle_event0();
printf("end handel_event0…\n");
}

if ( event0_fd > 0 ) {
close(event0_fd);
event0_fd = -1;
}

return 0;

}
分享到:
评论

相关推荐

    android linux 捕获按键

    - Android NDK允许开发者使用C/C++编写原生代码,以实现高性能计算或访问硬件资源,比如捕获按键事件。创建一个Android.mk或CMakeLists.txt文件来配置NDK构建过程。 - 编写C/C++代码,使用`#include ...

    Android开发C语言开发

    ### Android C语言开发知识点 ...通过以上两个部分的学习,我们可以了解到在Android平台上使用C语言进行原生开发的基本流程和关键技术点。这些基础知识对于进一步探索更复杂的Android C/C++应用开发非常有帮助。

    android原生二维码扫描

    在Android平台上实现原生二维码扫描是一项常见的需求,用于读取和解析二维码中的信息。QRZxing是一个基于开源项目Zxing(ZXing,意为“快速扫描”)的Android二维码扫描库,它为开发者提供了便捷的方式来集成二维码...

    android原生系统签名文件

    本文将深入探讨"android原生系统签名文件"的相关知识点,以及压缩包中提供的各个文件的用途。 首先,Android系统使用签名来验证软件包的来源和授权,以防止恶意代码的注入。在Android开发过程中,有多种签名文件...

    android原生分享功能实现

    在Android开发中,原生分享功能是应用与用户交互、与其他应用进行数据共享的重要途径。本文将详细讲解如何实现Android原生分享功能,包括分享到微信、QQ好友以及使用系统级的分享菜单。 首先,我们需要了解Android...

    该组件用于ReactNative中获取Android原生层面的键盘响应事件

    在Android TV应用开发中,由于用户主要通过遥控器进行交互,所以捕获和处理遥控器的按键事件显得尤为重要。通常,这些事件包括方向键、确定键、返回键等。这个特定组件就是为了解决这个问题,它扩展了React Native的...

    基于ReactNative的android原生组件模块的工具箱

    这个工具箱专注于在Android平台上集成和管理原生组件,为ReactNative开发者提供了一个方便的解决方案,以便更好地利用Android系统的特性和功能。 标题“基于ReactNative的android原生组件模块的工具箱”暗示了该...

    android 原生人脸识别Camera和Camera2的示例

    本文将详细讲解如何利用Android原生的`Camera`和`Camera2` API来实现这一功能。 首先,我们从`Camera` API开始。`Camera` API是Android早期版本提供的人脸检测接口,通过`FaceDetector`类来实现。以下是一些关键...

    6个android原生开发小游戏

    在Android原生开发中,创建游戏是一个挑战但充满乐趣的过程。以下6个游戏项目提供了丰富的学习资源,涵盖了从基础到进阶的Android游戏开发技术: 1. **Android 美女拼图游戏**:这是一个典型的图像处理和逻辑编程的...

    uni-app调用Android原生可以实现通信及打开WiFi

    【uni-app调用Android原生实现通信及打开WiFi】\n\nuni-app是一个跨平台的前端框架,允许开发者使用一套代码编写应用,同时在iOS、Android、H5等多个平台上运行。在uni-app中,通过调用原生插件,我们可以实现与...

    Android原生登陆界面

    在Android应用开发中,创建一个原生的登录界面是至关重要的,它为用户提供了一种安全且用户友好的方式来访问应用程序。"Android原生登陆界面"这个项目专注于构建这样一个界面,考虑了不同设备屏幕方向的变化,确保在...

    Android 原生webApp的运行壳

    综上所述,Android原生WebApp的运行壳是Android开发中的一个重要工具,它让开发者能够高效地融合Web技术和原生平台,为用户提供一致且流畅的体验。通过学习和掌握这一技术,开发者可以更灵活地应对各种开发需求,...

    android原生与HTML之间的交互

    在Android开发中,有时我们需要将Web技术和原生应用结合,以实现更加丰富的用户界面和交互体验。这通常涉及到Android原生代码与HTML内容的交互,也就是我们常说的Hybrid开发模式。在这种模式下,HTML、CSS和...

    Android项目C语言嵌入式.rar

    在Android开发领域,C语言的嵌入式应用是一种常见的技术实践,特别是在系统级编程、性能敏感的模块或者需要与硬件紧密交互的场景中。本压缩包"Android项目C语言嵌入式.rar"很可能是提供了一个关于如何在Android项目...

    Android原生定位的方法(GPS,网络定位)源码

    Android开发之原生定位的方法(GPS,网络定位)更多查看我的博客:https://blog.csdn.net/xiayiye5/article/details/83686286

    使用C语言开发安卓(android)系统的步骤及方法.doc

    第二部分涉及到了Android原生C语言开发的图形绘制,即framebuffer技术。framebuffer是一种直接访问显存并进行像素级操作的技术。在Android系统中,可以使用framebuffer来创建图形界面,实现更复杂的功能。操作...

    android插件,与原生的衔接

    在Android开发中,有时我们需要利用跨平台框架如Ionic来构建应用程序,同时为了实现特定的设备功能或优化性能,我们可能需要接入原生的Android代码。本文将深入探讨如何在使用Ionic与Cordova的项目中创建自定义插件...

    Android原生录音机

    在Android平台上,开发一款原生录音机应用是一个常见的任务,涉及到多媒体处理、音频录制和播放等技术。Android SDK提供了一套完整的API,使得开发者能够轻松地实现这些功能。本篇文章将详细探讨Android原生录音机的...

    对MYSQL的原生C语言API的一个简单的封装类,让它更易于使用 .zip

    对MYSQL的原生C语言API的一个简单的封装类,让它更易于使用。mysql_controlMYSQL的原生C语言API用起来有点麻烦(特别是在要获取查询结果的时候),所以我对其做了一个简单的封装,让它更易于使用。全部代码都是...

Global site tag (gtag.js) - Google Analytics