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. java 学习List 的 add 与set差分法

    /** * 在List收集在许多方面.add(int index,Object obj)方法与set(int index,Object e)方法不易区分 * .通过以下实例.能够看出两个方法中的差别 ...

  2. PHP:Cannot modify header information - headers already sent by错误的解决方案

    <?php ob_start();setcookie("username","test",time()+3600);echo "the user ...

  3. 开辟html5和css3学习随笔(2015-3-2)

    1.移动端超出指定行数隐藏并显示省略号 <!DOCTYPE html> <html> <head> <meta http-equiv="Conten ...

  4. 【转】Android实现推送方式解决方案

    本文介绍在Android中实现推送方式的基础知识及相关解决方案.推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息. ...

  5. Android项目---webView

    之前用webView的时候,只知道它可以加载出html页面,竟然不知道,它也可以与js进行交互. WebView是一个网络视图,能加载显示网页,可以将它看作一个浏览器.它使用WebKit渲染引擎加载显 ...

  6. XLSTransformer生成excel一个简单的演示示例文件

    项目结构图: 在这些项目中使用jar.可以http://www.findjar.com/index.x下载 ExcelUtil类源代码: package util; import java.io.IO ...

  7. SpringMVC Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现

    SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现 到这里已经写到第12篇了,前11篇基本上把Spring M ...

  8. Winform 程序嵌入WPF程序 并发送消息

    废话不多说,先看解决方案目录 WindowsFormsDemo是主程序,WpfApp是嵌入的WPF程序,先看WPF程序,程序默认启动的页面是MainWindow.xaml,这里注释掉App.xaml里 ...

  9. APNs功能之Node.js和Mysql应用总结

    APNs功能之Node.js和Mysql应用总结 这篇文档主要是总结Node.js和Mysql的学习心得体会.当然也可以看作是此前所写的消息推送服务的续篇. 简单描述下应用背景,我们的应用需要实现苹果 ...

  10. 使用celery之怎么让celery跑起来

    celery 官网帮助文档  http://docs.celeryproject.org/en/latest/index.html 前言 自从发了上次的文章使用celery之深入celery配置, 有 ...