题目:Android通话录音的设计与实现
摘要:
想必大家都有过人工服务时的提醒,“您好,为了提高服务质量,本次通话将会被录音”。他能录我们的通话,我们也能录他们的通话,这才公平嘛。为了满足部分用户的需求,实现电话录音监控。本文主要介绍了在Android系统电话通话双向录音功能。用Broadcast receiver实现来电和拨打的监控。当来电或拨打时就会产生一个广播事件,然后被Broadcast接收,接收到后就会启动上面的Service,通过Service服务在后台用Record实现打电话和接电话通话录音工作。
关键词: 通话录音 Android Service and Broadcast receiver Record
考试日期:2015.10.15
备注:本文的电子版和源程序已经发到老师指定的邮箱。
1.
项目概述
项目概述
想必大家都有过人工服务时的提醒,“您好,为了提高服务质量,本次通话将会被录音”。他能录我们的通话,我们也能录他们的通话,这才公平嘛。像照片一样,能记入亲人的点点滴滴,语言交流也一样能成为我们的美好回忆,如果能够记录我们的每次的通话录音,在某个若干时段拿出来听听,是多美美好的回忆。因此电话录音有大量的客户需求。
本文主要介绍了在Android系统电话通话双向录音功能。用的是Android的Eclipse的编译环境,sdk是用的4.3。用Broadcast receiver实现来电和拨打的监控。当来电或拨打时就会产生一个广播事件,然后被Broadcast接收,接收到后就会启动上面的Service,通过Service服务在后台用Record实现打电话和接电话通话录音工作。录音的文件格式是3gp格式,文件名字是时间和通话对方的电话号码组成的,保存在scared的listen文件夹中。
在经过大量的测试,发现有些手机不能实现该功能,这是硬件的问题,在努力解决中。推荐使用魅族手机使用。
2. 功能需求
(1)需要一个能在拨打和接听电话时,实现录音功能的软件。
(2)当通话时,能够自动录音,能够辨别是那个时间段和谁打的电话。
3. 设计思路
针对 Android 通话录音这一需求,仔细推敲,决定用 Broadcast Receiver + Service 来实现。程序部署到手机上后,一旦有开机自启、来电或者外拨电话的动作,将发送一个广播,Broadcast Receiver 将会捕捉到这个广播。Broadcast Receiver 将启动监听服务,服务在后台将自动实现监听通话记录并将通话记录保存至文件后缀名为3gp的文件中,和文件名字是时间和通话对方的电话号码组成的,以便查询。
4. 开发环境下载、安装和配置
4.1 开发环境介绍
本程序是在Eclipse,Android sdk4.3和java1.7下运行开发程序,都是在Windows 7系统下安装的,用自己TCL和魅族手机来进行运行和测试工作。
4.2 工程文件的目录结构和文件如下图4.1
图4.1工程目录结构图
5. 程序的难点或核心技术分析
在编程实现的过程中,发现的难点主要有一下几点:
● 如何保存通话记录?
● 如何实现当开机、来电或者外拨电话动作发生时,自动启动监听服务?
难点的解决代码分别如下:
1. 权限设置,共有五个权限1监听电话状态权限,2录音权限,3写文件权限,4创建于删除文件权限,5监听外拨电话权限。如下图5.1:
图5.1权限设置图
2. 接收电话的广播设置,有两种方式:一是在程序里设置接收广播,生命周期为程序生命周期。二是在清单文件里设置,这个生命周期为手机系统周期。根据功能的需要,这里是
选择了第二个方法是通过功能清单注册的,达到监听广播自启的功能如下图5.2:
图5.2注册监听广播图
3. 通过广播来启动服务如下图5.3:
图5.3广播启动服务图
4. 通话时获取电话号码如下图5.4:
图5.4获取电话号码图
android模拟点击5. 通过服务来调用通话记录功能如下图5.5:
图5.5录音功能图
6. 时间格式转化如下图5.6:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论