android中通过拨号键打开contacts相关界面的流程分析
2013-12-09 17:21
267 查看
首先拨号键属于全局策略管理,所以在PhoneWindowManager中对KEYCODE_CALL事件做了对应的处理,如果按下KEYCODE_CALL时,话机处于RINGING状态,则通过Phone执行answerRingCall接口实现接听电话的调用。而在PhoneWindow中有对KEYCODE_CALL更详细的逻辑处理。当KeyDown时...android更关心此时是否是长按CALL,所以这不是我所想要知道的细节,而在KeyUp时有startCallActivity的调用,哈哈~
开始跟Call界面关联了。在这个调用中PhonwWindow发出了一个action为ACTION_CALL_BUTTON的Intent请求,不用猜,Contacts中绝对有一个Acivity对这个类型的Intent做了捕获,查看Contacts的AndroidManifest,发现只有DialtactsActivity对该类型的Intent做处理。检查一遍DialtactsActivity发现这是一个TabActivity,而我所关心的拨号界面,通话记录,联系人等界面均为其一个Tab,所以可以确定android就是通过一个简单的Intent将这个界面调用出来的。但是在实际中我遇到一些奇怪的问题(页面定位不准),所以继续检查。在fixIntent中DialtactsActivity会给来自Call键的Intent设置一个CONTENT_TYPE的type,同时标记一个扩展名为call_key
的boolean值(true),并立即在setCurrentTab中对这2个值做了检测,首先是如果call_key 为true, type为CONTNT_TYPE 那么就通过ITelephony调用showCallScreen().而这个调用里面如果话机不是idel状态则会调用InCallScreen界面,然后返回,退出。否则根据componentName进行选择显示的Tab
开始跟Call界面关联了。在这个调用中PhonwWindow发出了一个action为ACTION_CALL_BUTTON的Intent请求,不用猜,Contacts中绝对有一个Acivity对这个类型的Intent做了捕获,查看Contacts的AndroidManifest,发现只有DialtactsActivity对该类型的Intent做处理。检查一遍DialtactsActivity发现这是一个TabActivity,而我所关心的拨号界面,通话记录,联系人等界面均为其一个Tab,所以可以确定android就是通过一个简单的Intent将这个界面调用出来的。但是在实际中我遇到一些奇怪的问题(页面定位不准),所以继续检查。在fixIntent中DialtactsActivity会给来自Call键的Intent设置一个CONTENT_TYPE的type,同时标记一个扩展名为call_key
的boolean值(true),并立即在setCurrentTab中对这2个值做了检测,首先是如果call_key 为true, type为CONTNT_TYPE 那么就通过ITelephony调用showCallScreen().而这个调用里面如果话机不是idel状态则会调用InCallScreen界面,然后返回,退出。否则根据componentName进行选择显示的Tab
相关文章推荐
- android中通过拨号键打开contacts相关界面的流程分析
- Android5.1Telecomm层通话去电流程两路进程分析之二拨号过程显示通话界面过程分析
- android如何通过拨号界面打开隐藏界面
- Android中View绘制流程以及invalidate()等相关方法分析
- android视图学习---Android中View绘制流程以及invalidate()等相关方法分析
- Android拨号界面输入*#*#<code>#*#*转入自定义Activity流程
- Android中View绘制流程以及invalidate()等相关方法分析
- [转载]Android中View绘制流程以及invalidate()等相关方法分析
- Android中View绘制流程以及invalidate()等相关方法分析
- Android中View绘制流程以及invalidate()等相关方法分析
- Android中View绘制流程以及invalidate()等相关方法分析
- Android中View绘制流程以及invalidate()等相关方法分析
- ****Android中View绘制流程以及invalidate()等相关方法分析
- Android中View绘制流程以及invalidate()等相关方法分析
- Android默认锁屏界面按键处理流程分析
- Android中View绘制流程以及invalidate()等相关方法分析
- android google 分屏 多窗口 按home键界面错乱故障分析(一)分屏的整个流程分析
- Android中View绘制流程以及invalidate()等相关方法分析
- Android 4.0 Contacts 拨号界面分页方式解析(源码)
- Android中View绘制流程以及invalidate()等相关方法分析