안드로이드 통화 종료 후 엑티비티를 하나 띄워야하는데 도저희 모르겠습니다.

mTelManager로 통화상태 체크해서 해야한다는건 알겠는데 안되네요..

브로드케스트리시버랑 서비스 둘다 해봤는데....똑같이 안되네요...


public class MainService extends Service{

TelephonyManager mTelManager;

PhoneStateRead pListener;

String TAG = "Call State catch";

boolean callOutState = false; //calling state 

@Override

public IBinder onBind(Intent intent) {

// TODO Auto-generated method stub

return null;

}


@Override

public void onCreate() {

Log.i(TAG, "ServiceReceiver->onReceive();");

pListener = new PhoneStateRead();

mTelManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

mTelManager.listen(pListener, PhoneStateListener.LISTEN_CALL_STATE);

if(callOutState){ //if call end

Intent showRecord = new Intent(getBaseContext(), Call_Out_Record_Activity.class);

showRecord.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(showRecord);//open Call_Out_Record_Activity

}

}

public class PhoneStateRead extends PhoneStateListener {

private final String TAG = "Phone State Read";

@Override

public void onCallStateChanged(int state, String incomingNumber) {

switch (state) {

case TelephonyManager.CALL_STATE_IDLE:

Log.i(TAG,"MyPhoneStateListener->onCallStateChanged() -> CALL_STATE_IDLE "+incomingNumber);

break;


case TelephonyManager.CALL_STATE_OFFHOOK:

Log.i(TAG,"MyPhoneStateListener->onCallStateChanged() -> CALL_STATE_OFFHOOK "+incomingNumber);

break;

case TelephonyManager.CALL_STATE_RINGING:

Log.i(TAG,"MyPhoneStateListener->onCallStateChanged() -> CALL_STATE_RINGING "+incomingNumber);

break;

default:

Log.i(TAG,"MyPhoneStateListener->onCallStateChanged() -> default -> "+Integer.toString(state));

break;

}

CatchCallState(state);

}

}


private void CatchCallState(int state){

if(state == TelephonyManager.CALL_STATE_OFFHOOK || state == TelephonyManager.CALL_STATE_RINGING)

callOutState = false;

else if(state == TelephonyManager.CALL_STATE_IDLE) //통화 종료됨

callOutState = true;

}

}


이렇게 하긴 했는데....통화종료 혹은 밸울림 -> 종료됨 이때 엑티비티를 띄워야 하는데 도데체 머가 문제인건가요???

그리고 브로드케스트나 서비스에서 엑티비티르를 띄울때 하나만 떠야 하는데 ... 메인 엑티비티랑 같이 뜨고 있습니다..

이건 어떻게 해결하는건가요?? flag를 더 줘야 하는건가요??