Android 录音,加权限还有错误:java.lang.RuntimeException: setAudioSource failed. onCallStateChanged获取不到来电号码

在Android开发中,遇到录音时setAudioSource失败的问题,需要在AndroidManifest.xml添加WRITE_EXTERNAL_STORAGE和RECORD_AUDIO权限。即使添加权限后仍报错,可能需要在手机设置中手动为应用授权。同时,onCallStateChanged无法获取来电号码可能是因为未调用super.onCallStateChanged()导致。
摘要由CSDN通过智能技术生成

Android中给录音对象设置录音来源

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

如果遇到如下报错 :

  ServiceManager: Permission failure: android.permission.RECORD_AUDIO

  java.lang.RuntimeException: setAudioSource failed.                         

首先请考虑在  AndroidManifest.xml文件中添加下面的两项权限 

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 

添加权限后,如果还报同样的错误,请进入手机设置-应用,找到自己的应用,给应用授权

调试过程中除了第一次安装会提示授权外,再次安装不提示,如果用户没有授予应用相应的录音

和sdcard写权限,程序依然会报错。

所以如果是应用必须的权限,如果用户不给授权就不能进入应用,在获得授权前应每次都提示用户。

onCallStateChanged(int state, String incomingNumber)监听通话状态获取不到来电号码的原因一个

是和上面所述相同,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值