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 ...
随机推荐
- 《STL源代码剖析》---stl_hash_set.h阅读笔记
STL仅仅规定接口和复杂度,对于详细实现不作要求.set大多以红黑树实现,但STL在标准规格之外提供了一个所谓的hash_set,以hash table实现.hash_set的接口,hash_tabl ...
- Solr高亮与Field权重
Solr高亮与Field权重 Solr高亮 原理 做搜索时,高亮是很常见的需求,那么Solr肯定也为高亮提供了支持.先解释下Solr高亮的原理,在我们设置了需要高亮显示的Field之后,查询得到的 ...
- px/em/pt区别和转换
老是被人问到px.pt和em的区别,自己有时候也会纠结到底该用什么单位,今天特意查了一些文章,下面这篇虽然很久远了,但解释的比较全面,转载收藏之.点击查看原文 这里引用的是Jorux的“95%的中国网 ...
- Linux根目录下文件说明
/bin:存放最常用命令: /boot:启动Linux的核心文件: /dev:设备文件: /etc:存放各种配置文件: /home:用户主目录: /lib:系统最基本的动态链接共享库: /mnt:一般 ...
- 运行jar包
windos下,打开dos命令cmd然后cd 你的路径(比如E:/新建文件夹) linux下,打开终端cd 到你的路径( 然后输入java -jar 要运行的jar.jar
- golang切片slice
切片slice是引用类型 len()函数获取元素的个数 cap()获取数组的容量 1.申明方式 (1)var a []int 与数组不同的是他不申明长度(2)s2 := make([]int, 3, ...
- Asp.net MVC4 CodeFirst 使用EFTracingProvider
一.关于EFTracingProvider EFTracingProvider相关信息见作者博客:关于EFTracingProvider EFTracingProvider Demo下载地址:Trac ...
- touch事件分发
touch事件分发 IOS事件分发 我们知道,如果要一个view(就是view,不是UIControl控件)能够响应事件操作,通常的做法是给该View加上相应的手势,或者重写和touch(当然也可以是 ...
- 【NET】Winform用户控件的初步封装之编辑控件
编辑控件 public abstract partial class TEditorBase <TEntity, TRepository, TSqlStrConstruct> : User ...
- 街景地图 API
SOSO街景地图 API (Javascript)开发教程(1)- 街景 SOSO街景地图 Javascript API 干什么用的? 你想在网页里嵌入个地图,就需要它了! 另外,它还支持:地点搜 ...