之前一个项目上遇到一个问题是在特定的代码执行完毕后需要实现一个唤醒的动作,虽然这个问题后续没有用到休眠唤醒的动作,但是后续闲暇时间却针对这个问题来研究了一下。因为我们按下然后弹起power键实际上是可以实现休眠唤醒的,那就模拟按下和弹起的动作,主要就是上报KEY_POWER这个键值。

根据输入子系统的研究,上报键值需要依赖一定的输入设备,在无线程可用的输入设备的时候,只能自己注册一个输入设备。

#include <linux/input.h>
#include<linux/init.h>
#include<linux/module.h>
#include<linux/kernel.h>
#include <linux/proc_fs.h>
#include<linux/uaccess.h> static struct input_dev *my_dev;
static struct proc_dir_entry *my_proc;
static ssize_t write_proc(struct file *file,const char *buffer, size_t count, loff_t *ppos)
{int my_status = 0;int num = 0;char temp[50]; // for store special format cmdif (copy_from_user(temp, buffer, sizeof(temp))){return -EFAULT;}num = sscanf(temp,"%d",&my_status);if(num==1){input_report_key(my_dev, KEY_POWER, 1);input_sync(my_dev);input_report_key(my_dev, KEY_POWER, 0);input_sync(my_dev);}return sizeof(temp);// 返回0会不停的亮灭屏
}
static const struct file_operations test_proc = {.write = write_proc,
};
static int test_init(void){int err = 0;my_dev = input_allocate_device();my_dev->name = "feifei_dev";input_set_capability(my_dev, EV_KEY, KEY_POWER);err = input_register_device(my_dev);if(err<0){printk(" failed to register my input_dev\n");}my_proc = proc_create("feifei_proc", 0666, NULL, &test_proc);return 0;
}
static void test_exit(void){return;
}
module_init(test_init);
module_exit(test_exit);
MODULE_LICENSE("GPL");

android模拟触控power键相关推荐

  1. 模拟Android多点触控

    Android多点触控 Android多点触控 多点触控实现思路 第一种adb shell input方式 第二种adb shell sendevent方式 多点触控实现思路   经过资料的查询,要在 ...

  2. Android 多点模拟触控 免root 非无障碍 思路

    上个帖子 Android 无障碍权限下不支持多点模拟触控 不需要root的思路 https://bbs.125.la/forum.php?mod=viewthread&tid=14328100 ...

  3. Android多点触控详解

    本文转载自GcsSloop的 安卓自定义View进阶-多点触控详解 的文章 Android 多点触控详解,在前面的几篇文章中我们大致了解了 Android 中的事件处理流程和一些简单的处理方案,本次带 ...

  4. android 蓝牙触控笔,【转】Android-Input 触控笔

    Android 6.0 及更高版本支持蓝牙 (BT).蓝牙低功耗 (BTLE) 或 USB 协议的蓝牙触控笔连接适用的标准数据格式.平台会分析触摸输入和触控笔数据之间的时间关系并进行关联,然后提供触控 ...

  5. Android多点触控揭秘

    本文原创,转载请注明:http://blog.csdn.net/cloudzfy1/article/details/6582707 Google 暑期大学生博客分享大赛 - 2011 Android ...

  6. iOS触动精灵模拟触控类外挂原理分析

    一.外挂功能: 类似于模拟按键,该类型外挂主要用于通过图像识别,利用luac脚本对图像进行识别.而后再通过私有api实现触屏操作的功能. 二.外挂特征 外挂安装后,会有下面三个主要程序,touchsp ...

  7. Android多点触控技术

    1 简介 Android多点触控在本质上需要LCD驱动和程序本身设计上支持,目前市面上HTC.Motorola和Samsung等知名厂商只要使用电容屏触控原理的手机均可以支持多点触控Multitouc ...

  8. Android 多点触控消息捕获与处理

    1 简介 Android多点触控在本质上需要LCD驱动和程序本身设计上支持,目前市面上HTC.Motorola和Samsung等知名厂商只要使用电容屏触控原理的手机均可以支持多点触控Multitouc ...

  9. 简单的Android多点触控和手势识别

    参考: https://www.cnblogs.com/devinzhang/archive/2012/02/27/2369942.html https://www.jianshu.com/p/caf ...

  10. Android的触控重采样算法

    1.概述     Android的触控重采样算法非常出色.Android使用触摸外推和触摸内插的组合.触摸插值意味着我们接受两个触摸事件,并在两个触摸事件中间的某个位置创建一个触摸事件.触摸外推意味着 ...

最新文章

  1. 第二章 单元测试的基本概念和核心技法
  2. python3命令行运行程序怎么关闭_python中怎样退出程序运行?
  3. Lua——table(表)的使用
  4. linux新的API signalfd、timerfd、eventfd使用说明——eventfd
  5. 动态改变eachers图表高_让你的Excel图表动起来
  6. 为何小程序上线了,他们的内心却留下遗憾?
  7. 顺丰不行了吗?对快递行业的深度理解
  8. Security+ 学习笔记36 嵌入式系统安全
  9. c语言单片机题目设计大全,单片机课程设计要求及参考题目
  10. 1.Matlab图像的读取和显示
  11. 硬盘分区 整G整数法(从1g到200g最精确的整数分区)
  12. obs无法录制mkv视频文件的解决方法
  13. dell 1520 win7 x64 触摸板驱动 synaptics touchpad 16.2.10.3
  14. 开封大学计算机专业录取分数线,开封大学录取分数线2021是多少分(附历年录取分数线)...
  15. 1265:最长公共子序列
  16. 记录一次Specified key was too long的问题
  17. 三只松鼠事件竟是乌龙我们能不能给薇娅们一些耐心
  18. CHIL-ORACLE-修改
  19. 【深度学习】实验5布置:滴滴出行-交通场景目标检测
  20. Support for password authentication was removed on August 13, 2021.解决办法大全

热门文章

  1. 未知的软件异常0xc0000409解决办法
  2. 三电极体系电化学传感器
  3. win2003 apache php mysql,浅析Win2003系统中配置Apache+php+mysql的方法
  4. java医疗报销_医疗保险报销流程图(修改后)
  5. windows server 2008r2更新server pack 1补丁包和勒索病毒nsa,永恒之蓝 补丁包
  6. bmp怎样转成jpg?
  7. 海瑞菌的web前端学习直播间
  8. HashSet为什么要设置PRESENT
  9. 这有10款好玩游戏,游戏迷速来围观
  10. sublime 3 自定义配置