如何绑定按键与程序
16lz
2021-01-26
如果要绑定功能键与相应的应用程序,必须要修改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内置进系统。
更多相关文章
- 【学习笔记】Android中Service通信
- Android(安卓)- TextView添加图片
- android配置cocos2dx环境
- android ListView自定义适配器实现
- android studio 库工程添加变体功能
- Android(安卓)Studio中无法找到android.os.SystemProperties解决
- Android(安卓)App兼容android10.0系统需要修改那些东西,看这个就
- eclipse中绑定android源码
- Android(安卓)- 修改最小SDK版本(minSdkVersion)