Android 解决后台无法录音问题
- 问题分析
- 问题来源
- 解决方案
- 1. 修改清单文件:`AndroidManifest.xml`
- 2. 修改启动服务方式
- 3. 服务启动时创建前台通知并且指定前台服务类型
- 参考文档
- 最后我还有一句话要说
- 我用心为你考虑黄浦江的事情,你心里想的却只有苏州河的勾当
问题分析
安卓9.0开始,后台服务调用部分系统服务的功能会提示没有启动成功,从官方给出的文档分析,我们需要开启前台服务指定文档类型,否则系统会拒绝处理此类操作
Operation not started: uid=10046 pkg=com.example.testaudio(null) op=RECORD_AUDIO
问题来源
由于安卓系统权限管理机制不够完善,黑客可以通过获取麦克风、摄像头等权限在不知情的情况下窃取用户隐私信息。而为了改变这一现状,安卓9.0(初步代号定为Pistachio Ice Cream,Android P)将禁止空闲后台应用访问智能手机的相机或麦克风。
这两种变化的被认可并合并到周一Android源代码[ 1,2 ]中,详细见下图