美文网首页
Android通话录音及状态码38错误解决

Android通话录音及状态码38错误解决

作者: Swerve | 来源:发表于2017-04-10 09:17 被阅读0次

拨打一次电话会收到两次相同的广播。导致MediaRecorder会初始化两次。第二次初始化的时候报错崩溃。加一个为空判断就可以了
报状态码4错误。路径可能存在问题

电话状态判断代码

  public void onReceive(Context context, Intent intent) {
        Intent intent1 = new Intent(context,CallRecorder.class);
        //电话管理者对象
        TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        //得到电话状态
        int state = manager.getCallState();

        Bundle bundle = intent.getExtras();
        String num = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);//获取当前拨打电话的号码

        switch (state) {
            case TelephonyManager.CALL_STATE_IDLE://挂断的状态
                context.stopService(intent1);
                Log.i("BRO","IDLE");
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK://接听的状态
                Log.i("BRO","OFF");
                context.startService(intent1);
                break;
            case TelephonyManager.CALL_STATE_RINGING://响铃的状态
                System.out.println("响铃"+num);
                break;

            default:
                break;
        }

录音代码

 private void getAudio() {
        if (recorder != null) {
            Log.i("TAG", "notNull");
        } else {
            recorder = new MediaRecorder();
        }
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        //指定声音文件
        String path = Environment.getExternalStorageDirectory() + "/abc.amr";
        recorder.setOutputFile(path);
        //编码格式
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        try {
            recorder.prepare();
            recorder.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

相关文章

  • Android通话录音及状态码38错误解决

    拨打一次电话会收到两次相同的广播。导致MediaRecorder会初始化两次。第二次初始化的时候报错崩溃。加一个为...

  • 【Android编译 总索引】

    Android系统编译命令make 查看Android源码版本 fastboot flash错误及解决办法汇总 不...

  • Tomcat 错误代号及状态码

    状态代码 状态信息 含义100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(H...

  • Android 7.0 文件读取适配,适配相机及裁剪图片

    Android 7.0 打开文件的错误,调用相机及裁剪图片,还有动态权限 Demo挂载在码云上 码云链接华为荣耀V...

  • 接口错误状态码对照表

    错误状态码表 错误状态码为5位整型数值。所有整万的值保留。 扩展状态码为英文状态码,参考阿里的错误码,大部分切换到...

  • gradle内容编码错误导致的错误及解决方法

    # gradle内容编码错误导致的错误及解决方法。 ## 前言 #### 昨天用记事本编辑器编辑了android项...

  • CICS ECI常见错误码

    ECI返回码 常见错误及解决方式 -3 ECI_ERR_NO_CICS 连接不可用解决方式:重启客户端 -4 EC...

  • 项目的基本规范

    1.model : 基类:用以写入状态信息,状态码及错误信息 , 其他类进行继承并扩展。 2.layout:尽量使...

  • HTTP错误状态码

    1~5开头的HTTP状态码分别是什么含义:1XX :此类型的状态码是临时响应,代表着请求已经被接受,但需要继续处理...

  • HTTP错误状态码

    200:正确的请求返回正确的结果,如果不想细分正确的请求结果都可以直接返回200。 201:表示资源被正确的创建。...

网友评论

      本文标题:Android通话录音及状态码38错误解决

      本文链接:https://www.haomeiwen.com/subject/yrwfattx.html