BroadcastReceiver实现android来去电录音功能(外录)
来源:互联网 发布:淘宝第三方介入电话 编辑:程序博客网 时间:2024/04/28 15:14
因为原生android没有提供来去电内录功能,所以只能通过麦克进行通话录音,
<span style="font-size:18px;">/** * 来去电录音,因为去电没有接听的状态,只要拨出就会开始录音 * * @author jaeuken * @date 2015-1-4 */public class PhoneBroadcastReceiver extends BroadcastReceiver {private static String outgoingNumber = "";private static String incomeNumber = "";private String state = "";private static MediaRecorder mediaRecorder; @Overridepublic void onReceive(Context context, Intent intent) {/*去电时: * 未接: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)){//来电接通或去电(无法判断是否接通),开始录音Thread recordingThread = new Thread() {@Overridepublic void run() {try {File dirFile = Environment.getExternalStorageDirectory();File file;//根据用来电号码是否为空判断来去电if(incomeNumber!=null&&incomeNumber.length()>0){file = new File(dirFile, "IN_"+incomeNumber +"_" + System.currentTimeMillis() + ".3gp"); }else{file = new File(dirFile, "OUT_"+outgoingNumber +"_" + System.currentTimeMillis() + ".3gp"); }mediaRecorder = new MediaRecorder(); 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 (IllegalStateException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} //准备 }};recordingThread.start();}if("IDLE".equals(state)){//挂断,停止录音if(mediaRecorder != null){ mediaRecorder.stop(); mediaRecorder.reset();mediaRecorder.release(); mediaRecorder = null; outgoingNumber = "";incomeNumber = "";} }}} }</span>
<span style="font-size:14px;"> </span><span style="font-size:18px;"><!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 在SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- 刻入声音权限 --> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission> </span>
<span style="font-size:18px;"><receiver android:name="com.test.recordphone.PhoneBroadcastReceiver"> <intent-filter > <action android:name="android.intent.action.PHONE_STATE"/> <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> </intent-filter> </receiver></span>
0 0
- BroadcastReceiver实现android来去电录音功能(外录)
- 如何使Android录音实现内录功能
- 如何使Android录音实现内录功能
- 如何使Android录音实现内录功能
- 录音,录视频功能的实现过程
- 手把手教你Android来去电通话自动录音的方法
- 手把手教你Android来去电通话自动录音的方法
- android实现录音功能
- android录音功能的实现
- Android 通话录音功能实现
- android录音功能的实现
- android 录音功能的实现
- Android实现录音的功能
- android下录音功能实现
- Android显示来去电归属地
- Android录音功能Android Studio实现
- Android应用开发-----------来电录音(去电录音)
- ffmpeg实现录屏+录音
- PHP实现目录遍历
- 我的博客重新开张
- 支持滚动展示图片的ImageView
- hdu 2050 折线分割平面
- JvisualVM监控步骤
- BroadcastReceiver实现android来去电录音功能(外录)
- 关于函数strtok和strtok_r的使用要点和实现原理(二)
- JQuery效果
- android上传文件到服务器
- bstIterator
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- Silicon Labs 为物联网提供低能耗与传感解决方案
- 【服务器租用,如何选择好的服务器呢】
- JS操作DOM元素属性和方法