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進行簽名