通话录音上传到阿里云

一、需求分析

  1. 来/去电时需要获取对方电话,接听电话时,开始录音【双方通话内容】,挂断时,结束录音,并保持录音文件到本地,最后上传到服务器。
  2. 当由于网络 ,服务器等其他原因,无法上传录音文件,需要记录未上传的文件,等网络良好的时候,继续上传文件。
  3. 电话录音上传服务保活
  4. 定期清理录音文件

注:在安卓6.0版本后第三方应用无法使用VOICE_CALL权限


二、技术点以及难点

  • 基础技术点

    • 文件存储

    • 录音

    • 监听通话状态以及记录

    • 文件上传

    • 高危权限申请

  • 难点

    • 服务/进程保活

    • 设置自己应用为系统应用才能使用系统VOICE_CALL权限

    • 系统签名,屏蔽系统源码

    • 奥创手机系统,抢占了通话录音,导致自己实现通话录音时,提示被其他应用占用

三、解决方案

  1. 通话自动录音
  • 启动一个service,监听用户手机通话状态,当检测到用户处于通话状态下,立即开始录音,通话结束后,停止录音,并保存文件。

  • 使用系统自带的电话自动录音功能。【打开方式:设置 -> 电话 ->通话录音 ->自动录音】

  • 录音文件存放在「内置SD卡的MIUI/sound_recorder/call_rec」文件夹下

  • 监听通话状态,当通话结束,去录音文件夹查找刚保存的录音问题,并上传到阿里云。当遇到某些原因,导致上传失败时,保存(使用Sqlite或者sp)失败文件路径。下次再次尝试上传。

  • 定时删除录音文件或者上传成功后删除


  1. 进程保活
  • Android手机在设置里面都一个辅助功能(个别手机也叫:无障碍),利用这个我们可以实现一些强大的功能,前提是用户开启我们的辅助功能,抢红包软件就是利用辅助功能实现的。
  • 当用户清理后台的时候,要求service不可以被杀
  • 设置成系统级别的服务

  1. 解决奥创手机系统
  • 红米5plus刷机
  • 使用官方红米 5 Plus稳定版
  • 奇兔一键刷机

四、参考文档

  1. 录音
  • android 通话录音
  • android实现通话自动录音上传
  • android 通话自动录音服务
  • android实现通话录音获取上传实现过程记录

  1. 上传文件阿里云
  • 官方文档

  • android 阿里云oss上传

  • Android图片上传到阿里云OSS小案例

  • Android客户端直传文件到阿里云OSS服务器详细流程代码


3.进程保活

你可能感兴趣的:(通话录音上传到阿里云)