android 物理按键 监听
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 物理按键 监听的更多相关文章
- android蓝牙耳机下的语音(输入/识别)及按键监听
背景:本人负责公司android平台的app开发,最近要开发一个语音助手类的app,类似于灵犀语音助手.虫洞语音助手等.其中有两个蓝牙耳机下的语音识别问题,比较折腾人,问题描述:1.蓝牙耳机连接下捕获 ...
- Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听
原文:Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听 简单记录下android 盒子开发遥控器的监听 ,希望能帮到新入门的朋友们 不多说,直接贴代码 public cla ...
- Android之键盘监听的执行机理【看清键盘监听的本质】【入门版】
以EditText为例: 1.Activity本身也有按键监听 editText按键监听与Activity按键监听关系: Activity本身也有按键监听 并且分按下和松开两个事件监听 editTex ...
- Fragment中的按键监听
在Fragmentzhong中写按键监听,有两处处需要注意: 1)是否是当前显示的fragment:. 2)在所依托的activity中的onKeyDown方法处理监听事件: 其他地方和普通按键监听一 ...
- Android 手势水平监听判断
package com.zihao.ui; import com.zihao.R; import android.os.Bundle; import android.app.Activity; imp ...
- Android中如何监听GPS开启和关闭
转自 chenming 原文 Android中如何监听GPS开启和关闭 摘要: 本文简单总结了如何监听GPS开关的小技巧 有时需要监听GPS的开关(这种需求并不多见).实现的思路是监听代表 GPS ...
- Android手机上监听短信的两种方式
Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...
- Java Swing类 例子代码:将子类继承JFrame 并且接口按键监听ActionLisetener (将内容直接添加到JFrame不创建Contaniner)
package rom; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import ...
- android的电话监听
android的电话监听 新建一个项目,结构图如下: PhoneService: package com.demo.tingdianhua; import android.app.Service; i ...
随机推荐
- javascript 正则介绍
1.正则直接量字符 \o NUL字符(\u000)\t 制表符\n 换行符(\u000A)\v 垂直制表符\f 换页符\xnn 由16进制nn指定的拉丁字符\uXXXX 由16进制XXXX指定的unc ...
- JSON 分析数据格式
2014年4月26日本10:55:15 从三月初开始,并JSON战斗.学校不教怎样做,己..大规模的搜索啊.发表这篇文章,喜欢我和不知道如何开始的新手! 和 XML 如.JSON 也是基于纯文本数据格 ...
- .Net中批量添加数据的几种实现方法比较
在.Net中经常会遇到批量添加数据,如将Excel中的数据导入数据库,直接在DataGridView控件中添加数据再保存到数据库等等. 方法一:一条一条循环添加 通常我们的第一反应是采用for或for ...
- 10.读google测试之道有感
(一)读google测试之道有感.
- Mysql高级之事务
原文:Mysql高级之事务 通俗的说事务: 指一组操作,要么都成功执行,要么都不执行.---->原子性 在所有的操作没有执行完毕之前,其他会话不能够看到中间改变的过程-->隔离性 事务发生 ...
- 增删查改-MySQL
查询: 在MySQL中,select的基本语法形式: select 属性列表 from 表名和视图 [where 条件表达式] [group by 属性名 [having 条件表达式]] [order ...
- C#快速学习
C#快速学习笔记(译) 下面是通过代码快速学习C#的例子. 1.学习任何语言都必定会学到的hello,world! using System; public class HelloWorld { ...
- 使用STL处理分支限界法处理最优装载问题
使用STL处理分支限界法处理最优装载问题 #include <iostream>#include <vector>#include <queue>#include ...
- java文件上传--基于ajaxFileUpload+struts2
jQuery插件ajaxFileUpload可以实现ajax文件上传,使用非常简单. 下面做一个简单的demo(以上传图片为例),实现图片上传,图片显示,图片下载 注:以下的代码是在项目的基础上进行开 ...
- 通过实体反射实现CriteriaQuery并列条件查询
将实体反射之后获取查询字段的值,并添加到Predicate对象数组中 public Predicate getPredicateAnd(T entity, Root<T> root, Cr ...