关于android来去电监控的一点总结
2012-04-15 15:01
323 查看
最近在项目中需要监控通话状态。于是查阅了TelephonyManager相关的API。实现通话状态的监控主要有2种途径:1、注册一个listener来捕获通话中的各种状态(Applications can also register a listener to receive notification of telephony state changes)。2、注册一个监听打电话的广播。
第一种方式貌似只能在activity或Services自身运行的时候才能执行(说法不准确或不当的欢迎拍砖指正)。而第二种则又分两种情况:一、静态注册的广播,在程序退出的情况下,任然能够监听。二、动态注册的广播只能在程序执行的时候进行监控,退出了则失效。
下面主要说说怎样通过系统广播来实现(在这里只说说静态注册,动态注册请查阅API)。
manifest.xml文件如下:
因为我的项目中需要获取来去电号码,所以在这里监听了 拨打电话中的两个动作:NEW_OUTGOING_CALL和PHONE_STATE,当然这需要声明相应的权限,否则报错。
注册好了之后就可以实现BroadcastReceiver中的onReceive方法。在该方法中你就可以获取所需的数据啦。在这里有必要说明的是BroadcastReceiver的生命周期是很短暂的。任何耗时的异步操作不能在onReceive中执行。因为在返回结果之前,系统已经释放了BroadcastReceiver进程。例如:你不能在BroadcastReceiver里显示一个dialog或绑定一个service。如果实现要在这里给出提示可以使用NotificationManager。
监控效果如下:
来电:
![](http://pignut.net/wp-content/uploads/2011/07/incoming.png)
来电一
电话处于响铃状态,此时可以获取来电号码
![](http://pignut.net/wp-content/uploads/2011/07/incoming2.png)
来电二
进入通话状态
![](http://pignut.net/wp-content/uploads/2011/07/incoming3.png)
来电三
挂机……
去电:
![](http://pignut.net/wp-content/uploads/2011/07/outcoming1.png)
去电一
电话接通之前……
![](http://pignut.net/wp-content/uploads/2011/07/outcoming2.png)
去电二
接听……
![](http://pignut.net/wp-content/uploads/2011/07/outcoming3.png)
去电三
通话中……
第一种方式貌似只能在activity或Services自身运行的时候才能执行(说法不准确或不当的欢迎拍砖指正)。而第二种则又分两种情况:一、静态注册的广播,在程序退出的情况下,任然能够监听。二、动态注册的广播只能在程序执行的时候进行监控,退出了则失效。
下面主要说说怎样通过系统广播来实现(在这里只说说静态注册,动态注册请查阅API)。
manifest.xml文件如下:
注册好了之后就可以实现BroadcastReceiver中的onReceive方法。在该方法中你就可以获取所需的数据啦。在这里有必要说明的是BroadcastReceiver的生命周期是很短暂的。任何耗时的异步操作不能在onReceive中执行。因为在返回结果之前,系统已经释放了BroadcastReceiver进程。例如:你不能在BroadcastReceiver里显示一个dialog或绑定一个service。如果实现要在这里给出提示可以使用NotificationManager。
来电:
![](http://pignut.net/wp-content/uploads/2011/07/incoming.png)
来电一
电话处于响铃状态,此时可以获取来电号码
![](http://pignut.net/wp-content/uploads/2011/07/incoming2.png)
来电二
进入通话状态
![](http://pignut.net/wp-content/uploads/2011/07/incoming3.png)
来电三
挂机……
去电:
![](http://pignut.net/wp-content/uploads/2011/07/outcoming1.png)
去电一
电话接通之前……
![](http://pignut.net/wp-content/uploads/2011/07/outcoming2.png)
去电二
接听……
![](http://pignut.net/wp-content/uploads/2011/07/outcoming3.png)
去电三
通话中……
相关文章推荐
- 关于android中gridview的一点总结
- Android 关于回调的一点总结
- 关于Android开发中JNI/NDK使用的一点总结
- 关于新建android项目时 appcompat_v7报错问题的一点总结
- 关于ADO+SQL /Access里面查询日期时间类型语句的一点总结
- 关于android 异常日志抓取监控
- 关于窗体(Windows Form)的CreateParams(属性或参数)的一点总结!
- 关于做Android+J2ee系统集成开发的一点心得
- 关于android播放gif图片小总结
- 关于Android 混淆的内容总结(studio和eclipse)
- Android中关于dip和px以及转换的总结
- 关于Android软件破解的经验总结
- 关于伪静态学习的一点总结
- 自己关于Android 通过WebService进行网络编程的总结
- Android Voip再次总结 关于数据流的加密和解密
- Android 关于activity嵌套fragment的时候onactivityresult方法不执行的总结
- 关于Android中selector的一点注意事项
- 关于android中几个Info系列类的总结
- 关于PHP的i18n(国际化)的一点总结(1)----gettext部分
- 关于Android EditText图文混排的总结