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程序设计有所帮助。