android编程实现电话录音的方法
本文实例讲述了android编程实现电话录音的方法。分享给大家供大家参考。具体如下:
在清单文件AndroidManifest.xml中添加权限:
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/> <!--在SDCard中创建与删除文件权限--> <uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!--往SDCard写入数据权限--> <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permissionandroid:name="android.permission.RECORD_AUDIO"/> <!--访问internet权限--> <uses-permissionandroid:name="android.permission.INTERNET"/> <uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
java代码如下:
publicclassPhoneListenerServiceextendsService{ @Override publicvoidonCreate(){ TelephonyManagermanager= (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); //监听电话的状态 manager.listen(newMyListener(),PhoneStateListener.LISTEN_CALL_STATE); } privatefinalclassMyListenerextendsPhoneStateListener{ privateStringnum; privateMediaRecorderrecorder; publicvoidonCallStateChanged(intstate,StringincomingNumber){ switch(state){ caseTelephonyManager.CALL_STATE_RINGING:/*电话进来时*/ num=incomingNumber; break; caseTelephonyManager.CALL_STATE_OFFHOOK:/*接起电话时*/ try{ Filefile=newFile(Environment.getExternalStorageDirectory(),num+"_"+System.currentTimeMillis()+".3gp"); recorder=newMediaRecorder(); recorder.setAudioSource(AudioSource.MIC);//声音采集来源(话筒) recorder.setOutputFormat(OutputFormat.THREE_GPP);//输出的格式 recorder.setAudioEncoder(AudioEncoder.AMR_NB);//音频编码方式 recorder.setOutputFile(file.getAbsolutePath());//输出方向 recorder.prepare(); recorder.start(); }catch(Exceptione){ e.printStackTrace(); } break; caseTelephonyManager.CALL_STATE_IDLE:/*无任何状态时*/ if(recorder!=null){ recorder.stop(); recorder.release(); } break; } } } }
希望本文所述对大家的Android程序设计有所帮助。