因为原生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使用AudioRecord遇到的问题与解决方法
  2. 小米,红米手机android 6.0以下 权限管理
  3. Android中通过Intent 调用图片、视频、音频、录音、拍照
  4. Android(安卓)录音
  5. ANDROID音频系统散记之二:resample-1
  6. ANDROID音频系统散记之二:resample-1
  7. Android(安卓)来去电自动录音(一)
  8. Android录音并根据音量大小实现简单动画效果
  9. android 音频视频合并

随机推荐

  1. 超简单实现Android(安卓)屏幕截屏(需要系
  2. Android(安卓)动画实现
  3. android 获取view在屏幕中的位置
  4. Android: Open source FileManager
  5. android 之 GridView
  6. Android.mk简要说明
  7. Android(安卓)实现添加Icon到桌面功能
  8. Mac下Android的cocos2d-x配置
  9. android TextView 设置部分文字背景色和
  10. 通过Camera进行拍照