如何绑定按键与程序
2012-08-14 09:34
134 查看
如果要绑定功能键与相应的应用程序,必须要修改frameworks并对此键进行拦截,下面就以HOME键为例:
修改文件frameworks\base\services\java\com\android\server\WindowManagerService.java
1。在文件的开始处添加变量:static boolean flag = false;
2。在函数int dispatchKey(KeyEvent event, int pid, int uid)的最开始处添加代码:
if(event.getKeyCode() == KeyEvent.KEYCODE_HOME )
{
if(event.getAction() == KeyEvent.ACTION_DOWN)
{
if(!flag && event.isLongPress()){
flag = true;
}
}else if(event.getAction() == KeyEvent.ACTION_UP){
if(flag)
{
//处理长按
... ...
}else
{
//处理短按
... ...
}
}
return INJECT_FAILED;
}
在相应的注释处加入必要的代码。
然后重新make.
需要注意的是:如果不让用户更改绑定的app,需要把app内置进系统。
修改文件frameworks\base\services\java\com\android\server\WindowManagerService.java
1。在文件的开始处添加变量:static boolean flag = false;
2。在函数int dispatchKey(KeyEvent event, int pid, int uid)的最开始处添加代码:
if(event.getKeyCode() == KeyEvent.KEYCODE_HOME )
{
if(event.getAction() == KeyEvent.ACTION_DOWN)
{
if(!flag && event.isLongPress()){
flag = true;
}
}else if(event.getAction() == KeyEvent.ACTION_UP){
if(flag)
{
//处理长按
... ...
}else
{
//处理短按
... ...
}
}
return INJECT_FAILED;
}
在相应的注释处加入必要的代码。
然后重新make.
需要注意的是:如果不让用户更改绑定的app,需要把app内置进系统。
相关文章推荐
- ASP.NET MVC 3程序(一): 如何绑定JQuery插件JQgrid
- linux在用户程序中如何向操作系统发送按键事件
- 如何解决程序退出重起后不能绑定端口的问题?
- 如何使后台运行的程序获取按键事件
- 如何在程序中模拟键盘的按键事件?
- 【微信小程序常识】如何绑定微信小程序体验者
- 看Hashtable如何绑定ComBox !~!~ - 程序人生的日志 - 网易博客
- 如何取得某个菜单所绑定的所有事件处理程序
- 微信小程序如何通过微信绑定的手机号进行快速登录
- 如何让程序检测你的按键,实现WEB热键功能呢?
- 如何:在 ASP.NET 网页中对事件处理程序进行运行时动态绑定
- 如何判断某个事件已经绑定了某个事件处理程序?
- 如何判断某个事件已经绑定了某个事件处理程序?
- 如何在原生微信小程序中实现数据双向绑定
- 如何在UE4 C++中进行按键绑定
- C# 程序中如何向(DEV)ComboBoxEdit控件中添加下拉列表的值不使用数据绑定,就是使用代码添加
- 如何将两个程序绑定到一起
- 如何在原生微信小程序中实现数据双向绑定欢迎使用CSDN-markdown编辑器
- 如何取得某个菜单所绑定的所有事件处理程序
- 如何实现取消对话框程序默认的Enter和Esc按键?