在/frameworks//base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java文件中添加你需要处理的系统键值,
这是因为Android的系统键值在抛向应用层之间都是在该类中的interceptKeyBeforeQueueing被处理的。代码实现如下:

//变量声明并初始化
private int mBackDoorCurIndex = 0;  
private long mBackDoorStartTime = 0;  
//控制按键时间间隔在2s之内
private final int mBACKDOORTIME = 2000;
//将后门暗号存在数组里面,这里暗号是0752
private final int[] mBackDoorKeys = {KeyEvent.KEYCODE_0,KeyEvent.KEYCODE_7,KeyEvent.KEYCODE_5,KeyEvent.KEYCODE_2};

//在interceptKeyBeforeQueueing中的if(down)中添加如下代码
    if(keyCode != mBackDoorKeys[mBackDoorCurIndex]){
        if(0 != mBackDoorCurIndex)
            mBackDoorCurIndex = 0;
        return;  
    }
    if(0 == mBackDoorCurIndex)
    {
        mBackDoorStartTime = SystemClock.uptimeMillis();
        mBackDoorCurIndex++;
        return;
    }
    //超过设置的时间间隔
    if(SystemClock.uptimeMillis() - mBackDoorStartTime > mBACKDOORTIME) {
        mBackDoorCurIndex = 0;
        return;
    }
    mBackDoorCurIndex++;
    if(mBackDoorKeys.length <= mBackDoorCurIndex){
        if(mBackDoorKeys.length == mBackDoorCurIndex){
            //对上暗号的处理程序
        }
        mBackDoorCurIndex = 0;
    } 

更多相关文章

  1. Android Http请求的代码
  2. Android 源代码编后的目录分析
  3. 代码混淆
  4. PendingIntent实现原理和代码
  5. Eclipse For Android 代码自动提示功能
  6. android 查看解压后的.xml文件代码(axmlprinter2)
  7. 【Android】使用dex2jar 与JD-Gui 反编译APK文件,查看源代码
  8. Android 实现沉浸式只需一行代码

随机推荐

  1. 分析 flutter 打包流程及 aar 产物,并将最
  2. 编译生成可执行文件(Android(安卓)studio
  3. NestedScrollView中添加一个android:fill
  4. 【Android网络通话】关于语音通话LinPhon
  5. Appium学习第一个测试脚本
  6. android读取扫码模组数据的方法
  7. Android图形系统草稿
  8. Android版本变化而产生的权限变更
  9. Android(安卓)一个自定义View需要实现哪
  10. Android嵌套滑动机制源码分析