Android 理解endcall和power组合行为

/frameworks/base/core/java/android/provider/Settings.java

/**

* What happens when the user presses the end call button if they're not

* on a call.<br/>

* <b>Values:</b><br/>

* 0 - The end button does nothing.<br/>

* 1 - The end button goes to the home screen.<br/>

* 2 - The end button puts the device to sleep and locks the keyguard.<br/>

* 3 - The end button goes to the home screen. If the user is already on the

* home screen, it puts the device to sleep.

*/
public static final String END_BUTTON_BEHAVIOR = "end_button_behavior";

/**

* END_BUTTON_BEHAVIOR value for "go home".

* @hide

*/
public static final int END_BUTTON_BEHAVIOR_HOME = 0x1;

/**

* END_BUTTON_BEHAVIOR value for "go to sleep".

* @hide

*/

public static final int END_BUTTON_BEHAVIOR_SLEEP = 0x2;

/**

* END_BUTTON_BEHAVIOR default value.

* @hide

*/

public static final int END_BUTTON_BEHAVIOR_DEFAULT = END_BUTTON_BEHAVIOR_SLEEP;

@UnsupportedAppUsage

public static final String INCALL_POWER_BUTTON_BEHAVIOR = "incall_power_button_behavior";

/**

* Whether the user allows minimal post processing or not.

*

* <p>Values:

* 0 - Not allowed. Any preferences set through the Window.setPreferMinimalPostProcessing

* API will be ignored.

* 1 - Allowed. Any preferences set through the Window.setPreferMinimalPostProcessing API

* will be respected and the appropriate signals will be sent to display.

* (Default behaviour)

*

* @hide

*/

public static final String MINIMAL_POST_PROCESSING_ALLOWED =
"minimal_post_processing_allowed";

/**

* INCALL_POWER_BUTTON_BEHAVIOR value for "turn off screen".

* @hide

*/

public static final int INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF = 0x1;

/**

* INCALL_POWER_BUTTON_BEHAVIOR value for "hang up".

* @hide

*/
public static final int INCALL_POWER_BUTTON_BEHAVIOR_HANGUP = 0x2;

/**

* INCALL_POWER_BUTTON_BEHAVIOR default value.

* @hide

*/

public static final int INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT =
INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF;

/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

public void updateSettings() {

ContentResolver resolver = mContext.getContentResolver();

boolean updateRotation = false;

synchronized (mLock) {

mEndcallBehavior = Settings.System.getIntForUser(resolver,
Settings.System.END_BUTTON_BEHAVIOR,
Settings.System.END_BUTTON_BEHAVIOR_DEFAULT,
UserHandle.USER_CURRENT);

mIncallPowerBehavior = Settings.Secure.getIntForUser(resolver,
Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR,
Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT,
UserHandle.USER_CURRENT);

以上可以根据实际需要,进行替换设置:

默认为sleep和screen off

相关推荐
毕设源码-钟学长2 分钟前
【开题答辩全过程】以 基于Springboot的扶贫众筹平台为例,包含答辩的问题和答案
java·spring boot·后端
lsx2024065 分钟前
C++ 基本的输入输出
开发语言
CodeSheep程序羊17 分钟前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
独好紫罗兰17 分钟前
对python的再认识-基于数据结构进行-a002-列表-列表推导式
开发语言·数据结构·python
2401_8414956422 分钟前
【LeetCode刷题】二叉树的直径
数据结构·python·算法·leetcode·二叉树··递归
budingxiaomoli22 分钟前
优选算法-字符串
算法
I'mChloe25 分钟前
PTO-ISA 深度解析:PyPTO 范式生成的底层指令集与 NPU 算子执行的硬件映射
c语言·开发语言
编程小白202637 分钟前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习
我是咸鱼不闲呀37 分钟前
力扣Hot100系列19(Java)——[动态规划]总结(上)(爬楼梯,杨辉三角,打家劫舍,完全平方数,零钱兑换)
java·leetcode·动态规划
qq74223498441 分钟前
APS系统与OR-Tools完全指南:智能排产与优化算法实战解析
人工智能·算法·工业·aps·排程