在oncreate 中执行:
复制代码public void onCreate() {
super.onCreate();
Log.i("TAG", "服务启动了");
// 对电话的来电状态进行监听
TelephonyManager telManager = (TelephonyManager) this
.getSystemService(Context.TELEPHONY_SERVICE);
// 注册一个监听器对电话状态进行监听
telManager.listen(new MyPhoneStateListener(),
PhoneStateListener.LISTEN_CALL_STATE);
}
实现MyPhoneStateListener:
复制代码
private class MyPhoneStateListener extends PhoneStateListener {
MediaRecorder recorder;
File audioFile;
String phoneNumber;
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE: /* 无任何状态时 */
if (recorder != null) {
recorder.stop(); //停止刻录
recorder.reset(); //重设
recorder.release(); //刻录完成一定要释放资源
}
break;
case TelephonyManager.CALL_STATE_OFFHOOK: /* 接起电话时 */
try {
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // 设置音频采集原
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //内容输出格式
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //音频编码方式
// recorder.setOutputFile("/sdcard/myvoice.amr");
audioFile = new File(
Environment.getExternalStorageDirectory(),
phoneNumber + "_" + System.currentTimeMillis()
+ ".3gp");
recorder.setOutputFile(audioFile.getAbsolutePath());
Log.i("TAG", audioFile.getAbsolutePath());










