android电话接听过程简单解析
2010-08-07 17:49
176 查看
一个新来电是由CallNotifier监听到的,CallNotifier类继承与Handler,在CallNotifier.java里面,代表新来点的Message是PHONE_NEW_RINGING_CONNECTION。
mPhone.registerForNewRingingConnection(this, PHONE_NEW_RINGING_CONNECTION, null);
当然,得注册这个信号。有新来电时,CallNotifier收到这个新号,交由onNewRingingConnection((AsyncResult) msg.obj)来处理
在onNewRingingConnection()内,
boolean provisioned = Settings.Secure.getInt(mPhone.getContext().getContentResolver(),
Settings.Secure.DEVICE_PROVISIONED, 0) != 0;
查询是否设置了拒接电话,如果是,则直接挂断电话。然后,设置音频为响铃状态,通过startIncomingCallQuery(Connection c)开始查询来电信息。
在startincomingCallQuery()里面,先判定是否能查询,如果不是,直接启动来电界面,否则,继续查询来电人的信息,比如对应铃声等,查询完以后,启动来电界面,即调用displayCallScreen();
启动来电界面以后,电话控制权就完全交由InCallScreen.java, 但是到现在为止,电话还是没有接通,只是通知了有来电,这就是,CallNotifier.java完成的任务,跟他的名字一样,只是起到Notify的作用。在来电界面,InCallScreen.java监听用户的Key Event, 如果按下的是接听键,则接听电话,如果是挂机键,就挂断电话。
按下接听键, CallNotifier会收到一个PHONE_STATE_CHANGED的信号,如果按下,挂机键,会收到一个PHONE_STATE_DICONNECT,如果接听,则设置音频状态为接听电话状态,停止响铃,放置一个接电话的图标在屏幕上,与此同时,InCallScreen也会收到这样一个新号,它做的事情就是更新通话界面,比如点亮屏幕,使菜单消失等等。 但是如果挂断电话,那做的是就是更新通话记录,停止响铃等。
mPhone.registerForNewRingingConnection(this, PHONE_NEW_RINGING_CONNECTION, null);
当然,得注册这个信号。有新来电时,CallNotifier收到这个新号,交由onNewRingingConnection((AsyncResult) msg.obj)来处理
在onNewRingingConnection()内,
boolean provisioned = Settings.Secure.getInt(mPhone.getContext().getContentResolver(),
Settings.Secure.DEVICE_PROVISIONED, 0) != 0;
查询是否设置了拒接电话,如果是,则直接挂断电话。然后,设置音频为响铃状态,通过startIncomingCallQuery(Connection c)开始查询来电信息。
在startincomingCallQuery()里面,先判定是否能查询,如果不是,直接启动来电界面,否则,继续查询来电人的信息,比如对应铃声等,查询完以后,启动来电界面,即调用displayCallScreen();
启动来电界面以后,电话控制权就完全交由InCallScreen.java, 但是到现在为止,电话还是没有接通,只是通知了有来电,这就是,CallNotifier.java完成的任务,跟他的名字一样,只是起到Notify的作用。在来电界面,InCallScreen.java监听用户的Key Event, 如果按下的是接听键,则接听电话,如果是挂机键,就挂断电话。
按下接听键, CallNotifier会收到一个PHONE_STATE_CHANGED的信号,如果按下,挂机键,会收到一个PHONE_STATE_DICONNECT,如果接听,则设置音频状态为接听电话状态,停止响铃,放置一个接电话的图标在屏幕上,与此同时,InCallScreen也会收到这样一个新号,它做的事情就是更新通话界面,比如点亮屏幕,使菜单消失等等。 但是如果挂断电话,那做的是就是更新通话记录,停止响铃等。
相关文章推荐
- android电话接听过程简单解析
- Android接电话流程、Phone来电过程、phone上层来电话解析 接通电话
- Android 插件化开发——应用的启动过程源码解析(简单清晰)
- android 电话接听流程解析
- Android开发教程--自定义接听/挂断电话功能
- laravel启动过程简单解析
- Android开发——View绘制过程源码解析(一)
- [置顶] Android开发——View绘制过程源码解析(二)
- android json解析及简单例子
- Android启动过程深入解析
- android json解析及简单例子
- Android中APK安装过程及原理解析
- android json解析及简单例子
- android开发小技巧(5)构建JSON字符串和解析简单使用
- android build 过程 (ramdisk.img、sytem.img、userdata.img)和 启动过程简单分析
- Android异步任务的简单呢操作,以及运行过程。
- Android-服务与广播实现简单电话录音
- android解析json和xml文件的简单应用(二)
- android json解析及简单例子
- Android中APK安装过程及原理解析