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

来源:互联网 发布:java用户登录实现代码 编辑:程序博客网 时间:2024/04/27 20:49

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)监听通话状态获取不到来电号码的原因一个

是和上面所述相同,另一个应该将super写在前面。

@Override  
public void onCallStateChanged(int state, String incomingNumber)  
{  
  super.onCallStateChanged(state, incomingNumber); 

  //自己的代码

  }

阅读全文
0 0
原创粉丝点击