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. SSMS2008插件开发(3)--部署调试SSMS2008插件

    原文:SSMS2008插件开发(3)--部署调试SSMS2008插件 上一次说到VS2008中的插件开发,最终结果插件是部署在VS2008中,现在我们将插件部署到SSMS2008(Microsoft ...

  2. leetcode[90] Decode Ways

    题目:如下对应关系 'A' -> 1 'B' -> 2 ... ‘Z’ -> 26 现在给定一个字符串,返回有多少种解码可能.例如:Given encoded message &qu ...

  3. SSMS2008插件开发(1)--介绍

    原文:SSMS2008插件开发(1)--介绍 SSMS2008就是Microsoft Sql Server Management Studio 2008的简称.许多人叫做SQL2008或SQL SER ...

  4. Xamarin.Android学习之应用程序首选项

    Xamarin.Android学习之应用程序首选项 一.前言 任何App都会存在设置界面,如果开发者利用普通控件并绑定监听事件保存设置,这一过程会非常的枯燥,而且耗时.我们可以看到Android系统的 ...

  5. JavaScript 动画库和开发框架

    1. Tween JS TweenJS 是一个简单的 JavaScript 补间动画库.能够很好的和 EaselJS 库集成,但也不依赖或特定于它.它支持渐变的数字对象属性和 CSS 样式属性.API ...

  6. Dynamics CRM 客户端的插件调试

    Dynamics CRM 客户端的插件调试 一直以来,Dynamics CRM插件在大家的印象中都是不便于调试的,根据官方文档(http://technet.microsoft.com/zh-cn/l ...

  7. Android学习笔记-Intent(一)

    Intent对象在Android官方API这样描述:It is a passive data structure holding an abstract description of an opera ...

  8. java web项目基础

      listener,filter,servlet的初始化顺序 web.xml中可以配置如下信息: context-param,listener,filter,servlet. 他们的加载顺序和在we ...

  9. sprinfmvc学习--01

    springmvc框架是一个基于请求驱动的web框架,使用了前端控制器模式来设计.根据请求映射规则分发给相应的页面控制器进行处理. 1.  首先用户发送请求-->DispatcherServle ...

  10. Mason 简单笔记

    Mason的对象 ------------------------------- Request对象 Mason有两个全局预处理对象叫做:$r和$m $r是mod_perl的请求对象,它提供了Perl ...