android 定制遙控器需求按鍵不攔截home鍵和power鍵

Android 10 不攔截home和power

Index: android/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
=================================================================== 
     private void interceptPowerKeyUp(KeyEvent event, boolean interactive, boolean canceled) {
@@ -2739,7 +2740,8 @@
                 handler = new DisplayHomeButtonHandler(displayId);
                 mDisplayHomeButtonHandlers.put(displayId, handler);
             }
-            return handler.handleHomeButton(win, event);
+            handler.handleHomeButton(win, event);
+            return 0;//允許下發(fā)按鍵
         } else if (keyCode == KeyEvent.KEYCODE_MENU) {
             // Hijack modified menu keys for debugging features
             final int chordBug = KeyEvent.META_SHIFT_ON;
@@ -3969,7 +3971,8 @@
                         mPowerKeyHandled ? 1 : 0, mPowerKeyPressCounter);
                 // Any activity on the power button stops the accessibility shortcut
                 cancelPendingAccessibilityShortcutAction();
-                result &= ~ACTION_PASS_TO_USER;
+                //result &= ~ACTION_PASS_TO_USER;
+                result = 1; //不攔截power鍵
                 isWakeKey = false; // wake-up will be handled separately
                 if (down) {
                     interceptPowerKeyDown(event, interactive);
@@ -4149,7 +4152,6 @@
             wakeUp(event.getEventTime(), mAllowTheaterModeWakeFromKey,
                     PowerManager.WAKE_REASON_WAKE_KEY, "android.policy:KEY");
         }
-
         return result;
     }
 

熄屏情況時候power鍵有時候被攔截

Dropping event due to no window focus 
Index: android/frameworks/base/core/java/android/view/ViewRootImpl.java
===================================================================
--- android/frameworks/base/core/java/android/view/ViewRootImpl.java    (revision 43633)
+++ android/frameworks/base/core/java/android/view/ViewRootImpl.java    (revision 43634)
@@ -4888,6 +4888,9 @@
                 }
 
                 // Drop non-terminal input events.
+                if (isPower(q.mEvent)) {
+                    return false;
+                }
                 Slog.w(mTag, "Dropping event due to no window focus: " + q.mEvent);
                 return true;
             }
@@ -4907,6 +4910,14 @@
                 return false;
             }
         }
+
+        private boolean isPower(InputEvent event) {
+            if (event instanceof KeyEvent) {
+                return ((KeyEvent) event).getKeyCode() == KeyEvent.KEYCODE_POWER;
+            } else {
+                return false;
+            }
+        }
     }
 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容