phone6

dest.writeString(name);
dest.writeString(phoneNumber);

}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { 
        public Person createFromParcel(Parcel in) 
        { 
            return new Person(in); 
        } 
  
        public Person[] newArray(int size) 
        { 
            return new Person[size]; 
        } 
    }; 
}

PhoneBrocastRecive 

package com.huawei.phonerecorder.receiver;

import java.io.File;

public class PhoneBrocastRecive extends BroadcastReceiver {

private static final String TAG = "PhoneBrocastRecive";

private static final String folderPath="/sdcard/phone_record/";
    private static MediaRecorder recorder; 
    private static boolean callOver = false;
   
    private Context context;
    private Intent intent;
   
    private static String outNumber;
    private static String inNumber;
   
    private DataOpenHelper dataHelper;
   
    private static final int FILE_TOTAL = 5;
@Override
public void onReceive(Context context, Intent intent) {

this.context = context;
this.intent = intent;

Log.i("----------->", "开始广播");   
//outNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
//inNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
String in = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
String out = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
if(in != null){
inNumber = in;
}

        doCall(context, intent);
    /*if(outNumber == null && inNumber != null){
    doInCall(context, intent);
    }else if(outNumber != null){
    doOutCall(context, intent);
    }*/
    /*Log.d("outNumber ----- >", outNumber);
        Intent serviceIntent=new Intent(context,PhoneService.class);   
        context.startService(serviceIntent); */
}
private void doCall(Context context, Intent intent){
String phoneState = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if(phoneState.equals(TelephonyManager.EXTRA_STATE_IDLE)){ 
            if(callOver){ 
                stopRecord(); 
                callOver = false; 
                inNumber =null;
            } 
             
            Log.d(TAG, "IDLE"); 
        }else if(phoneState.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){ 
            callOver = true; 
            startRecord(); 
            Log.d(TAG, "OFFHOOK"); 
        }else if(phoneState.equals(TelephonyManager.EXTRA_STATE_RINGING)){ 
            Log.d(TAG, "RINGING"); 
        }

}
private void doOutCall(Context context, Intent intent){
//String outNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Log.d(TAG, outNumber);
}
private void doInCall(Context context, Intent intent){
//String inNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Log.d(TAG, inNumber);
}

private void startRecord(){ 
        Log.d(TAG, "startRecord"); 
        String fileName = generateFileName(); 
        recorder = new MediaRecorder(); 
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
        recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
        Log.d(TAG, fileName); 
        recorder.setOutputFile(fileName); 
        try { 
            recorder.prepare(); 
        } catch (IllegalStateException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
         recorder.start(); 
    } 
    private String generateFileName(){
    dataHelper = new DataOpenHelper(context);
   
    if(inNumber != null){
    Person person = dataHelper.findPersonByNumber(inNumber);
    if(person != null){
    File f = new File(folderPath+person.getPhoneNumber() +"/");
        if(!f.exists()){
        f.mkdir();
        }
        return f.getAbsolutePath() +"/"+new Date().getTime()+".mp3";
    }
   
    }
    StringBuffer sb = new StringBuffer();

你可能感兴趣的:(one)