android连接了一个4x4的矩阵键盘,linux内核中注册了按键,在app中监听键盘事件。

package com.example.tony.keydemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.Toast; public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} @Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
switch (keyCode) {
// ESC
case KeyEvent.KEYCODE_ESCAPE:
Log.e("KEY", "KEY_ESCAPE");
Toast.makeText(MainActivity.this, "KEY_ESCAPE", Toast.LENGTH_SHORT).show();
break;
// "0"
case KeyEvent.KEYCODE_0:
Log.e("KEY", "KEY_0");
Toast.makeText(MainActivity.this, "KEY_0", Toast.LENGTH_SHORT).show();
break;
// "1"
case KeyEvent.KEYCODE_1:
Log.e("KEY", "KEY_1");
Toast.makeText(MainActivity.this, "KEY_1", Toast.LENGTH_SHORT).show();
break;
// OK
case KeyEvent.KEYCODE_ENTER:
Log.e("KEY", "KEY_ENTER");
Toast.makeText(MainActivity.this, "KEY_ENTER", Toast.LENGTH_SHORT).show();
break;
// "2"
case KeyEvent.KEYCODE_2:
Log.e("KEY", "KEY_2");
Toast.makeText(MainActivity.this, "KEY_2", Toast.LENGTH_SHORT).show();
break;
// "3"
case KeyEvent.KEYCODE_3:
Log.e("KEY", "KEY_3");
Toast.makeText(MainActivity.this, "KEY_3", Toast.LENGTH_SHORT).show();
break;
// "4"
case KeyEvent.KEYCODE_4:
Log.e("KEY", "KEY_4");
Toast.makeText(MainActivity.this, "KEY_4", Toast.LENGTH_SHORT).show();
break;
// "5"
case KeyEvent.KEYCODE_5:
Log.e("KEY", "KEY_5");
Toast.makeText(MainActivity.this, "KEY_5", Toast.LENGTH_SHORT).show();
break;
// "6"
case KeyEvent.KEYCODE_6:
Log.e("KEY", "KEY_6");
Toast.makeText(MainActivity.this, "KEY_6", Toast.LENGTH_SHORT).show();
break;
// "7'
case KeyEvent.KEYCODE_7:
Log.e("KEY", "KEY_7");
Toast.makeText(MainActivity.this, "KEY_7", Toast.LENGTH_SHORT).show();
break;
// "8"
case KeyEvent.KEYCODE_8:
Log.e("KEY", "KEY_8");
Toast.makeText(MainActivity.this, "KEY_8", Toast.LENGTH_SHORT).show();
break;
// "9"
case KeyEvent.KEYCODE_9:
Log.e("KEY", "KEY_9");
Toast.makeText(MainActivity.this, "KEY_9", Toast.LENGTH_SHORT).show();
break;
// F1
case KeyEvent.KEYCODE_F1:
Log.e("KEY", "KEY_F1");
Toast.makeText(MainActivity.this, "KEY_F1", Toast.LENGTH_SHORT).show();
break;
// "."
case KeyEvent.KEYCODE_PERIOD:
Log.e("KEY", "KEY_PERIOD");
Toast.makeText(MainActivity.this, "KEY_PERIOD", Toast.LENGTH_SHORT).show();
break;
// F2
case KeyEvent.KEYCODE_F2:
Log.e("KEY", "KEY_F2");
Toast.makeText(MainActivity.this, "KEY_F2", Toast.LENGTH_SHORT).show();
break;
// F3
case KeyEvent.KEYCODE_F3:
Log.e("KEY", "KEY_F3");
Toast.makeText(MainActivity.this, "KEY_F3", Toast.LENGTH_SHORT).show();
break;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event)
{
switch (keyCode) {
......
}
return super.onKeyLongPress(keyCode, event);
} }

Tony Liu

2017-1-16, Shenzhen

android 物理按键 监听的更多相关文章

  1. android蓝牙耳机下的语音(输入/识别)及按键监听

    背景:本人负责公司android平台的app开发,最近要开发一个语音助手类的app,类似于灵犀语音助手.虫洞语音助手等.其中有两个蓝牙耳机下的语音识别问题,比较折腾人,问题描述:1.蓝牙耳机连接下捕获 ...

  2. Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听

    原文:Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听 简单记录下android 盒子开发遥控器的监听 ,希望能帮到新入门的朋友们 不多说,直接贴代码 public cla ...

  3. Android之键盘监听的执行机理【看清键盘监听的本质】【入门版】

    以EditText为例: 1.Activity本身也有按键监听 editText按键监听与Activity按键监听关系: Activity本身也有按键监听 并且分按下和松开两个事件监听 editTex ...

  4. Fragment中的按键监听

    在Fragmentzhong中写按键监听,有两处处需要注意: 1)是否是当前显示的fragment:. 2)在所依托的activity中的onKeyDown方法处理监听事件: 其他地方和普通按键监听一 ...

  5. Android 手势水平监听判断

    package com.zihao.ui; import com.zihao.R; import android.os.Bundle; import android.app.Activity; imp ...

  6. Android中如何监听GPS开启和关闭

    转自 chenming 原文 Android中如何监听GPS开启和关闭   摘要: 本文简单总结了如何监听GPS开关的小技巧 有时需要监听GPS的开关(这种需求并不多见).实现的思路是监听代表 GPS ...

  7. Android手机上监听短信的两种方式

    Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...

  8. Java Swing类 例子代码:将子类继承JFrame 并且接口按键监听ActionLisetener (将内容直接添加到JFrame不创建Contaniner)

    package rom; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import ...

  9. android的电话监听

    android的电话监听 新建一个项目,结构图如下: PhoneService: package com.demo.tingdianhua; import android.app.Service; i ...

随机推荐

  1. jQueryRotate 转盘抽奖代码实现

    代码如下: 例子兼容IE6,7,8 以及高版本浏览器,如有bug请回复! 1.html结构 <!doctype html> <html lang="en"> ...

  2. Knockout应用开发指南

    Knockout应用开发指南 第一章:入门 2011-11-21 14:20 by 汤姆大叔, 20799 阅读, 17 评论, 收藏, 编辑 1    Knockout简介 (Introductio ...

  3. MVC与Validate验证提示的样式修改

    MVC中使用Validate的验证,要修改错误提示样式一共有3处需要修改,否则就不太完美了: MVC中的Validate的验证机制只用在后台写一次,就可以完成前台和后台的完美验证,前台的验证主要是依靠 ...

  4. Windows Forms框架编程

    <Windows Forms框架编程>节选   第九章 设计模式与原则 软件设计模式(Design pattern)是一套被反复使用的代码设计经验总结.使用设计模式是为了可重用代码.让代码 ...

  5. OpenStack最新版本Folsom架构解析

    OpenStack最新版本Folsom架构解析摘要:OpenStack的第6版,版本代号为Folsom的最新版于今年九月底正式发布,Folsom将支持下一代软件定义网络(SDN)作为其核心组成部分.F ...

  6. nant build

    http://stackoverflow.com/questions/700871/publish-webapplication-using-nant <target name="co ...

  7. 优秀Python学习资源

    优秀Python学习资源收集汇总(强烈推荐)   Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮 ...

  8. 用NPOI实现导入导出csv、xls、xlsx数据功能

    用NPOI实现导入导出csv.xls.xlsx数据功能   直接上代码 首先定义一个接口   如果需要直接操作文件的话,就自己在封装一次 然后定义csv类的具体实现 这个需要引入命名空间LumenWo ...

  9. 关于模板pair的用法

    在挑战程序设计竞赛中看到调用pair,就上网查了一下 类型申明有两种 template <class T1, class T2> struct pair typedef pairt< ...

  10. linux不同环境下c/c++程序移植方法

    这边之前的大多数项目都用的java,而自己用的c++,等到快要上线的时候才发现线上机器的gcc和libc的版本都巨低,跟自己测试开发用的环境不兼容,编译出的c++可执行文件没法运行.解决c++程序的移 ...