리소스에 mp3파일을 넣고 재생시키는 어플을 만들고 있습니다.

화면이 꺼져도 paly되어야 해서 onpause를 넣지 않고 onbackpresses메서드를 사용해서 백버튼을 누를 때 음악이 멈추게 했습니다.

그러나 문제는 전화가 왔을때 음악과 통화음이 같이 들린다는 것임니다.

프로르램 기초 지식이 없어서 어떻게 해야할 지 모르겠네요

그냥 전화왔을때 어플이 종료되게 할 순없나요?

제 생각에는 녹색으로 된 부분을 수정해야 할거 같은데요-.-

고수님들 도와주세요

 

 

 

package com.camtherapist.bodyscanmeditation;


import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;

public class bodyscanmeditation2 extends Activity {
 
 
 private static final boolean ON = false;
 MediaPlayer mp=null;
 TelephonyManager mTelMan;
 TextView mTextCall;
 boolean mResumeAfterCall;

 int curpos;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE); // TITLEBAR 제거
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);
       
        mp=MediaPlayer.create(bodyscanmeditation2.this,R.raw.meditation);
     
        Button button1 = (Button)findViewById(R.id.button1);
        button1.setOnClickListener(new Button.OnClickListener(){
         public void onClick(View v)
         {

          mp.start();

          }
        });
       

        TelephonyManager mTelMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        mTelMgr.listen(new PhoneStateListener() {
                  public void onCallStateChanged(int state, String incomingNumber) {
                   switch (state) {
                       case TelephonyManager.CALL_STATE_IDLE:
                          // 전화 대기 상태


                          break;
                       case TelephonyManager.CALL_STATE_OFFHOOK:
                       case TelephonyManager.CALL_STATE_RINGING:
                          // 전화가 오는중 또는 통화중


                           break;
                   }
              }
         }, PhoneStateListener.LISTEN_CALL_STATE);


}
   
   
   
   
   
   
    @Override
 public void onBackPressed(){
     //curpos=mp.getCurrentPosition();
     mp.stop();
     mp.release();
     super.onBackPressed();
    }
 
   
    public void wakeLock(boolean flag) {
      Object wl = null;
  if(flag == ON) {
       if (wl == null) { // CPU on (Power Manager)
        Activity context = null;
    PowerManager pm = (PowerManager) context
        .getSystemService(Context.POWER_SERVICE);
        wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
        "wakelock");
        ((WakeLock) wl).acquire();
       }
      } else {
       if (wl != null) { // PowerManager Release
         ((MediaPlayer) wl).release();
         wl = null;
       }
      }

}
   
   
   
   
   
}