DTMFTewlveDailerView.java---->dispachKeyEvent(KeyEvent event)
1, 在那个DTMF起来的情况下,是只能响应两个按键的,CALL键和BACK键,前者拨打电话,后者退出,都返回到InCallScreen界面
所以DTMFTwelveDialerView.dispachKeyEvent(KeyEvent event) 的返回语句是return event.isDown() ? mDialer.onKeyDown(KeyCode, event) : mDialer.onKeyUp(KeyCode, event);
而DTMFTwelveDialer.onKeyDown(int keyCode, KeyEvent event)的返回语句是return mInCallScreen.onKeyDown(KeyCode, event);
InCallScreen是这样处理Call按键事件的,如果当前是有保持的连接或者接通的连接,则交换连接,就是说刚刚拨打的号码转到foreground。
2,DTMFTwelveDialer.class 里面有两个个内部类,分别是:DTFMDisplayMovementMethod.class implement MovementMethod , DTMFKeyListener.class extends DialKeyListener,而DTMFKeyListener又有一个内部类 DTMFDisplayAnimation extends Handler implements AnimationListener. 比较复杂。
DTMFDisplayAnimation里面定义的onKeyDwon()和onKeyUp()处理按键的淡入淡出的动画效果,而DTMFKeyListener的onKeyDown()和onKeyUp()处理按键声音的触发和停止,以及文本框里面的数字变化
DTMFTwelveDailerView.java && DTMFTwelveDailer.java
最新推荐文章于 2021-02-27 16:46:14 发布