Android下Dialog及Activity屏蔽Home键详解

看看源码是怎样处理的 \frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowManager.java #1092

Java代码  

// First we always handle the home key here, so applications   // can never break it, although if keyguard is on, we do let   // it handle it, because that gives us the correct 5 second   // timeout.   if (code == KeyEvent.KEYCODE_HOME) {          // If a system window has focus, then it doesn't make sense       // right now to interact with applications.       WindowManager.LayoutParams attrs = win != null ? win.getAttrs() : null;       if (attrs != null) {           final int type = attrs.type;           if (type == WindowManager.LayoutParams.TYPE_KEYGUARD              || type == WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG) {               // the "app" is keyguard, so give it the key               return false;           }           final int typeCount = WINDOW_TYPES_WHERE_HOME_DOESNT_WORK.length;           for (int i=0; i<typeCount; i++) {               if (type == WINDOW_TYPES_WHERE_HOME_DOESNT_WORK[i]) {                   // don't do anything, but also don't pass it to the app                   return true;               }           }       }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wypjff.html