Android M平台在写APP测试使用MediaRecoder通过AudioSource.VOICE_CALL来录制通话上下行音的时候,需要权限
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
但是在申请权限
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" />
的时候一直失败,导致APP会crash掉
原因是这个权限是不开放给第三方应用使用的,应该用系统应用签名对APP进行签名。
解决方案:
①AndroidManifest.xml中添加
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:sharedUserId="android.uid.system"
通过
android:sharedUserId="android.uid.system"
让APP应有系统的权限
②在Android.mk中
LOCAL_CERTIFICATE := platform
用系统签名对APP进行签名