package com.example.phonelistener.service;
import java.io.File;
import java.io.IOException;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.MediaRecorder;
import android.os.Environment;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
public class callPhoneService extends Service {
private MediaRecorder recorder;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
tm.listen(new MyListener(), PhoneStateListener.LISTEN_CALL_STATE);
super.onCreate();
}
private class MyListener extends PhoneStateListener {
private MediaRecorder recorder;
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
//停止录制
if(recorder!=null){
recorder.stop();
recorder.release();
onDestroy();
}
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
//摘机状态,准备并开始录制
Log.d("callToOtherService", "开始播出号码");
// 准备一个窃听器
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
String str = Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ File.separator
+ "下载"
+ File.separator
+ "call"
+ System.currentTimeMillis()
+ ".mp3";
try {
File file = new File(str);
if (!file.exists()) {
file.createNewFile();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
recorder.setOutputFile(str);
try {
recorder.prepare();
Log.d("录音准备", "完成");
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//开始录制
recorder.start();
break;
default:
break;
}
super.onCallStateChanged(state, incomingNumber);
}
}
@Override
public void onDestroy() {
recorder=null;
this.stopSelf();
super.onDestroy();
}
}
如何监听手机通话
猜你喜欢
转载自blog.csdn.net/sinat_40387150/article/details/80820563
今日推荐
周排行