電話の状態をリッスンするために、このコードを使用しています。通話が着信すると、メディアプレーヤーが一時停止しますが、通話に応答するとすぐに、リスニングスピーカーから(リンガーからではなく)再生が再開されます。また、この場合は正常に動作mediaPlayer.start()
しcase TelephonyManager.CALL_STATE_IDLE:
ますが、再び開始(再開)しません。それを行うために利用できるフラグはありますか?
private final PhoneStateListener phoneListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
try {
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
Toast.makeText(context, "Call is Coming",Toast.LENGTH_SHORT).show();
mediaPlayer.pause();
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
case TelephonyManager.CALL_STATE_IDLE:
mediaPlayer.start();
break;
default:
}
} catch (Exception ex) {
mediaPlayer.release();
}
}
};
}
またはそれを行う他の方法はありますか?