2011-10-24 3 views
0

소리를 재생해야하는 응용 프로그램을 만들고 있습니다. 전화벨이 울리거나 전화가 걸려 오면 이어폰에서 소리를 내고 싶습니다. 코드 울부 짖는 소리는 화면이 켜져있을 때만 완벽하게 작동하지만 전화를 걸 때 내 귀에 전화가 오면 화면이 꺼지고 내 "알람"이 재생되지 않습니다. 어떤 힌트?통화 중에 알람 재생

TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); 
       int state = tm.getCallState(); 
       mMediaPlayer.setLooping(true); 
       if(state == TelephonyManager.CALL_STATE_OFFHOOK || state == TelephonyManager.CALL_STATE_RINGING){ 
        mMediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL); 
        mMediaPlayer.setScreenOnWhilePlaying(true); 
        audioManager.setSpeakerphoneOn(false); 
       audioManager.setStreamSolo(AudioManager.STREAM_VOICE_CALL, true); 
        audioManager.setMode(AudioManager.MODE_IN_CALL); 
        Log.d("GOFC","Tocando ou fora do gancho"); 
       } else { 
        mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); 
        vibrator.vibrate(pattern, 1); 
        Log.d("GOFC","Normal"); 
       } 
       mMediaPlayer.prepare(); 
       mMediaPlayer.start(); 
+0

전화를 걸고 화면에 알람이 울리지 만 현재 통화 중이며 화면이 꺼져 있으면 작동하지 않습니다. – Carth

+0

예. 휴대 전화를 귀에 꽂으면 화면이 꺼집니다 (센서가 있습니다). 내 전화가 탁자 위에 놓이는 소리를들을 수 있습니다. – gugarush

답변

0

WakeLock을 사용해야 할 수도 있습니다. 전화가 걸려서 WakeLock을 얻고 전화가 걸려 WakeLock을 받으면 이벤트를 청취해야합니다.

이것은 단지 야생의 추측입니다.

+0

WakeLock을 사용해 보았지만 작동하지 않았습니다. WakeLock을 사용해도 화면이 켜지지 않았습니다. – gugarush

관련 문제