我正在使用此代码来收听电话的状态。当电话到达时,它会暂停媒体播放器,但一旦我接听电话,它就会从监听扬声器(而不是铃声)再次开始播放。我也尝试在这种情况下删除mediaPlayer.start()
fromcase 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();
}
}
};
}
或者有没有其他方法可以做到这一点?