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();
只是爲了澄清,如果手機當前正在通話中,並且屏幕處於鬧鐘工作狀態,但如果您當前正在通話並且屏幕已關閉,則無法工作? – Carth
是的。當我將手機放在耳邊時,屏幕關閉(有一個傳感器可以做到這一點)。我可以聽到把手機放在桌子上的鬧鐘。 – gugarush