android12 app监听POWER键

android12 framework层 :app监听POWER键

diff --git a/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java b/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
index e3a2c69..9adde7a 100755
--- a/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -3958,7 +3958,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    
    
                 break;
             }
 
-            case KeyEvent.KEYCODE_POWER: {
    
    
+            case KeyEvent.KEYCODE_POWER: 
+            if(isTopCurRunningPackage("com.demo.key")){
    
    
+                    result |= ACTION_PASS_TO_USER;
+                    return 1;
+            } else {
    
    
                 EventLogTags.writeInterceptPower(
                         KeyEvent.actionToString(event.getAction()),
                         mPowerKeyHandled ? 1 : 0,
@@ -4145,6 +4149,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    
    
         return result;
     }
 
+    private boolean isTopCurRunningPackage(String packagename){
    
    
+        ActivityManager mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
+        ComponentName mComponentName = mActivityManager.getRunningTasks(1).get(0).topActivity;
+        String CurPackageName = mComponentName.getPackageName();
+        if(packagename.equals(CurPackageName)){
    
    
+            return true;
+        }
+        return false;
+    }
+
     private void handleKeyGesture(KeyEvent event, boolean interactive) {
    
    
         if (mKeyCombinationManager.interceptKey(event, interactive)) {
    
    
             // handled by combo keys manager.

猜你喜欢

转载自blog.csdn.net/qq_44256828/article/details/129637585