主代码写
package com.example.phonerecorder;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void start(View v){
//开启服务通过intent
Intent intent = new Intent(this,Recordservice.class);
startService(intent);
}
//停止服务通过intent
public void stop(View v){
Intent intent = new Intent(this,Recordservice.class);
stopService(intent);
}
}
Recordservice类要继承Service成为一个服务类
由于是服务所以要在清单中设置
<service android:name=".Recordservice"></service>
package com.example.phonerecorder;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
public class Recordservice extends Service {
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
Log.e("tag", "开启");
// TODO Auto-generated method stub
super.onCreate();
//创建一个电话管理器的对象(通过这个对象可以监听听电话的状态)
TelephonyManager manager = (TelephonyManager)
getSystemService(Context.TELEPHONY_SERVICE);//传入一个电话服务
//调用电话管理器的listen方法:注册监听
//参数 : 1监听器 2要监听打电话的状态
Listener listener = new Listener();
manager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.e("tag", "服务被销毁");
}
class Listener extends PhoneStateListener{
//状态改变调用
@Override
public void onCallStateChanged(int state, String incomingNumber) {
// TODO Auto-generated method stub
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
Log.e("tag","响铃"+incomingNumber+"准备一个录音机");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.e("tag","接电话了"+incomingNumber+"开始录音");
break;
case TelephonyManager.CALL_STATE_IDLE:
Log.e("tag","空闲状态"+"录音结束");
break;
default:
break;
}
//录音需要用户的权限,在清单中添加READ_PHONE_STATE:读音状态
// <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
}
}
}