通话接通和断开时振动
[AndroidVersion]
Android V2.3(GB,GB2)
Android V4.0, 4.1(ICS,ICS2,JB)
Android V4.2(JB2,JB3,JB5)
[DESCRIPTION]
若是需要客制化在通话接通或者断开时手机震动的行为,可以参考以下修改
[SOLUTION]
通话接通时:
1 在packages\apps\phone\src\com\android\phone\CallNotifier.java开头处添加
private Vibrator mVibrator;
2 在packages\apps\phone\src\com\android\phone\CallNotifier.java函数onPhoneStateChanged开头处添加
if (mVibrator == null){
mVibrator = (Vibrator) mApplication.getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE);
}
3 在packages\apps\phone\src\com\android\phone\CallNotifier.java中添加一个成员变量
Call.State mLastCallState = Call.State.IDLE;
然后在函数onPhoneStateChanged中的语句Phone fgPhone = mCM.getFgPhone();后添加以下代码
Call.State ringCallState = mCM.getRingingPhone().getRingingCall().getState();
Call.State fgCallState = mCM.getActiveFgCallState();
if ((ringCallState==Call.State.IDLE && mLastCallState.isRinging()) ||//MT
(fgCallState==Call.State.ACTIVE && mLastCallState.isDialing()))//MO
{
//here means that call is connected
final int MO_CALL_VIBRATE_TIME = 300; // msec
mVibrator.vibrate(MO_CALL_VIBRATE_TIME);
}
mLastCallState = ringCallState.isRinging() ? ringCallState:fgCallState;
通话挂断后:
在CallNotifier.java (alps\packages\apps\phone\src\com\android\phone)的 onDisconnect ()中
Phone.State state = mCM.getState() ;后添加如下Code
if (mVibrator == null){
mVibrator = (Vibrator) mApplication.getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE);
}
final int CALL_DISC_VIBRATE_TIME = 300; // msec
mVibrator.vibrate(CALL_DISC_VIBRATE_TIME);
更多相关文章
- Shape添加阴影效果
- Android(安卓)Studio 编译问题(1)
- Android.mk添加第三方jar包
- 利用ContentProvider的添加数据
- Activity的使用(九): 读取联系人
- RecyclerView添加行间距
- 异常ExceptionInInitializerError解决方案
- Android(安卓)程序奔溃常见问题汇总
- Android底层知识Window和WindowManager深入分析