重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家分享的是有关Android中如何设置手机在通话接通和断开时震动的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
10年积累的网站设计、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先建设网站后付款的网站建设流程,更有昌黎免费网站建设让你可以放心的选择与我们合作。[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中如何设置手机在通话接通和断开时震动”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。