【android】通话录音 -- service

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.MediaRecorder;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;

public class PhoneService extends Service {

	private static final String TAG = "PhoneService";
	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		super.onCreate();
		TelephonyManager mTelephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
		mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
	}
	
	PhoneStateListener mPhoneStateListener = new PhoneStateListener(){
		private String listenNumber;
		private boolean isRecording;
		private MediaRecorder recorder;
		
		@Override
		public void onCallStateChanged(int state, String incomingNumber) {
			super.onCallStateChanged(state, incomingNumber);
			switch(state){
				case TelephonyManager.CALL_STATE_IDLE:
				
					Log.d(TAG, "CALL_STATE_IDLE");
					break;
				
				case TelephonyManager.CALL_STATE_OFFHOOK:
					Log.d(TAG, "CALL_STATE_OFFHOOK");
					break;
				case TelephonyManager.CALL_STATE_RINGING:
					Log.d(TAG, "CALL_STATE_RINGING");
					break;
				default:
					break;
			}
			
		};
	};
}
import com.hw.receiver.demo.service.PhoneService;

public class PhoneBrocastRecive extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {

        Log.i("----------->", "开始广播");  
        Intent serviceIntent=new Intent(context,PhoneService.class);  
        context.startService(serviceIntent);
	}

}
<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    package="com.hw.receiver.demo.receiver"  
    android:versionCode="1"  
    android:versionName="1.0">  
    <application android:icon="@drawable/icon" android:label="@string/app_name">  

        <receiver android:name=".PhoneBrocastRecive">              
            <intent-filter android:priority="800">  
                <!-- <action android:name="android.intent.action.NEW_OUTGOING_CALL" />  -->
                <action android:name="android.intent.action.PHONE_STATE"/>
            </intent-filter>  
        </receiver>    
        <service android:name="com.hw.receiver.demo.service.PhoneService"></service>  
    </application> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>  
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>  
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>  
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
</manifest>

相关推荐