因为原生android没有提供来去电内录功能,所以只能通过麦克进行通话录音,

/***来去电录音,因为去电没有接听的状态,只要拨出就会开始录音**@authorjauken*@date2015-1-4*/publicclassPhoneBroadcastReceiverextendsBroadcastReceiver{privatestaticStringoutgoingNumber="";privatestaticStringincomeNumber="";privateStringstate="";privatestaticMediaRecordermediaRecorder;@OverridepublicvoidonReceive(Contextcontext,Intentintent){/*去电时:*未接:phone_state=OFFHOOK;*挂断:phone_state=IDLE*来电时:**未接:phone_state=RINGING*已接:phone_state=OFFHOOK;*挂断:phone_state=IDLE**///如果是拨打电话if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){outgoingNumber=intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);}if(intent.getAction().equals("android.intent.action.PHONE_STATE")){state=intent.getStringExtra(TelephonyManager.EXTRA_STATE);if("RINGING".equals(state)){incomeNumber=intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);}if("OFFHOOK".equals(state)){//来电接通或去电(无法判断是否接通),开始录音ThreadrecordingThread=newThread(){@Overridepublicvoidrun(){try{FiledirFile=Environment.getExternalStorageDirectory();Filefile;//根据用来电号码是否为空判断来去电if(incomeNumber!=null&&incomeNumber.length()>0){file=newFile(dirFile,"IN_"+incomeNumber+"_"+System.currentTimeMillis()+".3gp");}else{file=newFile(dirFile,"OUT_"+outgoingNumber+"_"+System.currentTimeMillis()+".3gp");}mediaRecorder=newMediaRecorder();mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);//获得声音数据源mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//按3gp格式输出mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);mediaRecorder.setOutputFile(file.getAbsolutePath());//输出文件mediaRecorder.prepare();mediaRecorder.start();}catch(IllegalStateExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}//准备}};recordingThread.start();}if("IDLE".equals(state)){//挂断,停止录音if(mediaRecorder!=null){mediaRecorder.stop();mediaRecorder.reset();mediaRecorder.release();mediaRecorder=null;outgoingNumber="";incomeNumber="";}}}}}
<receiverandroid:name="com.test.recordphone.PhoneBroadcastReceiver"><intent-filter><actionandroid:name="android.intent.action.PHONE_STATE"/><actionandroid:name="android.intent.action.NEW_OUTGOING_CALL"/></intent-filter></receiver>

转请加:http://my.oschina.net/u/2301542/admin/edit-blog?draft=169609

更多相关文章

  1. Android 获取麦克风音量
  2. Android的string-array数据源简单使用
  3. Android 中使用MIC(麦克风)录音
  4. android 来去电监听
  5. Android 来去电自动录音(一)
  6. Android 麦克风录音动画
  7. 使用xml作为数据源,配合asp:Menu类自由扩展菜单项

随机推荐

  1. Android(安卓)5.0 技术新趋势
  2. Android界面刷新的方法
  3. Android(安卓)Intent 对象详解
  4. 转:编写高效的Android代码
  5. 修正AppCompatSpinner弹出框位置问题
  6. Android(安卓)Permission
  7. Android内容提供者使用及创建
  8. 使用线程更新UI
  9. android中singleTask的home键的问题
  10. Android搭建opencv环境(超详细)