基于Android源码开发的来电接通振动功能实现

   我们在使用HTC的GXX时,会发现他有一个功能是接通后振动提示,虽然说不是什么大的功能,但是使用比较方便,比如在呼叫过程中的时候就可以放在桌子上等振动了就说明电话被接通了再拿起来说话,就避免了一直放到耳边等待对方。具体的实现如下,当然实现方式可能和它不一样,但是效果一样,呵呵。

由于我们是基于源码开发的,所以只讨论在PhoneApp里面添加该功能,独立模块或者基于SDK开发的不讨论。注意修改PhoneApp模块中的CallNotify.java文件。

1. 声明Vibrartor相关变量:

// Call active notify vibrate private Vibrator mVibrator; // Default vibrate time private static final int VIBRATE_LENGTH = 100; private boolean mAlreadyVibrate = true; 

2. 在构造函数中创建Vibrator:

mVibrator = new Vibrator(); 

3.  在onPhoneStateChanged的末尾,也就是GSM分支中(只支持GSM call),加入如下代码段:

if(callState == Call.State.DISCONNECTING) { mAlreadyVibrate = true; }else if(mAlreadyVibrate && callState == Call.State.ACTIVE) { // vibrate notify mVibrator.vibrate(VIBRATE_LENGTH); mAlreadyVibrate = false; } 

注:mAlreadyVibrate 主要是用于防止重复振动。OK,测试一下吧~

你可能感兴趣的:(Android开发相关)