温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中如何设置手机在通话接通和断开时震动

发布时间:2021-11-22 14:59:53 来源:亿速云 阅读:143 作者:小新 栏目:移动开发

这篇文章给大家分享的是有关Android中如何设置手机在通话接通和断开时震动的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

[Android Version]

Android V2.3 ( GB,GB2)

Android V4.0, 4.1( ICS, ICS2, JB)

Android V4.2( JB2,JB3,JB5)

Android V4.4

Android V5.0,5.1

[DESCRIPTION]

若是需要客制化在通话接通或者断开时手机震动的行为,可以参考以下修改

[SOLUTION]

通话接通时:

Android V4.4之前版本:

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;

mtkAndroid V4.4及之后版本:

已有此功能。

通话挂断后:

在CallNotifier.java 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);

感谢各位的阅读!关于“Android中如何设置手机在通话接通和断开时震动”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI