android+4.3+挂断,Android4.0中批改挂断键(ENDCALL)的默认行为

Android4.0中修改挂断键(ENDCALL)的默认行为

文件:

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

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;

另:关于getInt(ContentResolver

cr,

String name, int def)接口参数的问题,最后一个参数def是默认值,在没有读取到数据库中的设置数据时使用,在文件:frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java中有语句:mEndcallBehavior = Settings.System.getInt(resolver,

Settings.System.END_BUTTON_BEHAVIOR,

Settings.System.END_BUTTON_BEHAVIOR_DEFAULT);用来获取挂断键的默认行为以供在下面挂断键消息来了之后做处理:

case KeyEvent.KEYCODE_ENDCALL: {

result &= ~ACTION_PASS_TO_USER;

if (down) {

ITelephony telephonyService = getTelephonyService();

boolean hungUp = false;

if (telephonyService != null) {

try {

hungUp = telephonyService.endCall();

} catch (RemoteException ex) {

Log.w(TAG, "ITelephony threw RemoteException", ex);

}

}

interceptPowerKeyDown(!isScreenOn || hungUp);

} else {

if (interceptPowerKeyUp(canceled)) {

if ((mEndcallBehavior

& Settings.System.END_BUTTON_BEHAVIOR_HOME) != 0) {

if (goHome()) {

break;

}

}

if ((mEndcallBehavior

& Settings.System.END_BUTTON_BEHAVIOR_SLEEP) != 0) {

result = (result & ~ACTION_POKE_USER_ACTIVITY) | ACTION_GO_TO_SLEEP;

}

}

}

break;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值