如果要绑定功能键与相应的应用程序,必须要修改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内置进系统。