拨号按钮处理流程
2016-06-30 10:54:49 0 举报
当用户点击拨号按钮时,系统首先会检查网络连接状态。如果网络正常,系统将获取用户的输入,包括要拨打的号码。然后,系统会对输入的号码进行验证,确保它是一个有效的电话号码。验证通过后,系统将启动电话拨号程序,尝试建立到目标号码的连接。在连接过程中,系统可能会显示一些提示信息,如正在拨打电话、连接中等。如果连接成功,系统将进入通话状态,用户可以与对方进行通话。在整个过程中,如果遇到任何错误或异常情况,系统都会及时向用户报告,并提供相应的解决方案。
作者其他创作
大纲/内容
备注:TelecomVolteUtils是volte的工具类
设置通话状态,入免提等等
processOutgoingCallIntent()
com.android.server.telecom.CallsManager.placeOutgoingCall()
拨号界面,按钮流程。DialpadFragment实现了按钮
ACTION_CALL被PrimaryCallReceiver收到
PrimaryCallReceiver
InCallActivityOnCreate()
InCallActivity是通话界面的初始activity。通过过程是CallCardFragment
发广播,outgoing广播
CallIntentProcessor.processIntent()
将call循环加入注册的listener,其中就有InCallUi类,因此启动InCallActivity
handleDialButtonPressed()
UserCallIntentProcessor.processIntent()
DialpadFragmentOnClick()
调用InCallPresenter
通过TelecomManager.placeCall来调用(不对,这个函数最终调用ACTION_CALL进行打电话)
switchR.id.dialpad_floating_action_button
startOutgoingCall()
setWindowFlag()设置窗口模式
初始化一些信息,包括屏幕方向等
这个回调会最后调用CallsManager.placeOutgoingCall()
addCall()
TelecomServiceImpl.placeCall()
接收返回结果,回调NewOutgoingCallBroadcastIntentReceiver()
sendBroadcastToReceiver(intent);调用广播,启动ACTION_CALL
ACTION_CALL实现还没找到,不过应该是分2不分,一部分直接调用了phone类dial,另一部分打开InCallActivity
com.android.server.telecom.Call.startCreateConnection()调用com.android.server.telecom.CreateConnectionProcessor.process()
先检测屏幕方向
getTelecomSystem().getCallIntentProcessor().processIntent(intent);
收藏
0 条评论
下一页
为你推荐
查看更多