测试平台
Platform: RK3399/RK3328
OS: Android7.1/8.1/9.0/10.0
现象
双击Power键会弹出Camer应用,由于机器默认不带摄像头,所以需要关闭这个快捷操作
分析解决
跟踪代码发现,双击power流程是从PhoneWindowManager传入GestureLauncherService中,然后在GestureLauncherService中进行处理的。
//frameworks/base/services/core/java/com/android/server/GestureLauncherService.java
//frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
PhoneWindowManager.interceptPowerKeyDown() ->
GestureLauncherService.interceptPowerKeyDown()->
GestureLauncherService.mCameraDoubleTapPowerEnabled-
GestureLauncherService.isCameraDoubleTapPowerSettingEnabled()
public static boolean isCameraDoubleTapPowerSettingEnabled(Context context, int userId) {
return isCameraDoubleTapPowerEnabled(context.getResources())
&& (Settings.Secure.getIntForUser(context.getContentResolver(),
Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0, userId) == 0);
}
public static boolean isCameraDoubleTapPowerEnabled(Resources resources) {
return resources.getBoolean(
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled);
}
由上可知道,控制双击Power 键功能的开关有两个:
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled
Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED
关闭其中一个即可实现需求
方案1:
关闭com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled
diff --git a/frameworks/base/core/res/res/values/config.xml b/frameworks/base/core/res/res/values/config.xml
index 9074a45..70a6254 100644
--- a/frameworks/base/core/res/res/values/config.xml
+++ b/frameworks/base/core/res/res/values/config.xml
@@ -3271,7 +3271,7 @@
-
true
+
false
方案2:
关闭 Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index 7b81d9a..91fcbec 100644
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -244,4 +244,7 @@
0
+
+
+
false
diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 8c1825d..4cd7e16 100644
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2432,6 +2432
测试平台
Platform: RK3399/RK3328
OS: Android7.1/8.1/9.0/10.0
现象
双击Power键会弹出Camer应用,由于机器默认不带摄像头,所以需要关闭这个快捷操作
分析解决
跟踪代码发现,双击power流程是从PhoneWindowManager传入GestureLauncherService中,然后在GestureLauncherService中进行处理的。
//frameworks/base/services/core/java/com/android/server/GestureLauncherService.java
//frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
PhoneWindowManager.interceptPowerKeyDown() ->
GestureLauncherService.interceptPowerKeyDown()->
GestureLauncherService.mCameraDoubleTapPowerEnabled-
GestureLauncherService.isCameraDoubleTapPowerSettingEnabled()
public static boolean isCameraDoubleTapPowerSettingEnabled(Context context, int userId) {
return isCameraDoubleTapPowerEnabled(context.getResources())
&& (Settings.Secure.getIntForUser(context.getContentResolver(),
Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0, userId) == 0);
}
public static boolean isCameraDoubleTapPowerEnabled(Resources resources) {
return resources.getBoolean(
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled);
}
由上可知道,控制双击Power 键功能的开关有两个:
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled
Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED
关闭其中一个即可实现需求
方案1:
关闭com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled
diff --git a/frameworks/base/core/res/res/values/config.xml b/frameworks/base/core/res/res/values/config.xml
index 9074a45..70a6254 100644
--- a/frameworks/base/core/res/res/values/config.xml
+++ b/frameworks/base/core/res/res/values/config.xml
@@ -3271,7 +3271,7 @@
- true
+ false
方案2:
关闭 Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index 7b81d9a..91fcbec 100644
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -244,4 +244,7 @@
0
+
+
+ false
diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 8c1825d..4cd7e16 100644
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2432,6 +2432
举报