Yêu cầu của tôi là bật loa ngoài bất cứ khi nào một cuộc gọi đi được thực hiện. Tôi đã thử đoạn mã sau, nhưng nó không hoạt động. Trên thực tế, loa sẽ bật khi đang ở giữa cuộc gọi, cuộc gọi thứ hai sẽ đến!Bật loa ngoài bất cứ khi nào cuộc gọi đi được thực hiện
package in.co.allsolutions;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
//import android.view.View;
import android.widget.Toast;
import android.media.AudioManager;
public class MyTelephonyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);
Bundle extras = intent.getExtras();
if (extras != null) {
String state = extras.getString(TelephonyManager.EXTRA_STATE);
Log.i("AS", "Message Received. State = " + state + ", Mode = " + audioManager.getMode());
//audioManager.setMode(AudioManager.MODE_NORMAL);
//audioManager.setSpeakerphoneOn(true);
// if (state.equals("OFFHOOK"))
// {
//audioManager.setMode(AudioManager.MODE_CURRENT);
//audioManager.setSpeakerphoneOn(true);
//audioManager.setMode(AudioManager.MODE_IN_CALL);
//audioManager.setSpeakerphoneOn(true);
//audioManager.setMode(AudioManager.MODE_RINGTONE);
//audioManager.setSpeakerphoneOn(true);
if (audioManager.isSpeakerphoneOn()) {
Log.i("AS", "Speaker on - SUCCESS.");
} else {
Log.i("AS", "Speaker could not be turned on.");
}
// }
} else {
Toast.makeText(context, "Message Received without any state", Toast.LENGTH_LONG).show();
}
}
}
Cảm ơn.
Tôi đã tìm thấy câu hỏi tương tự ở đây, cũng không được trả lời: http://www.anddev.org/novice-tutorials-f8/how-to-programmatically-turn-on-loudspeaker-when-make-receiv- t49421.html. Có phải là một lỗi trong Android? – AllSolutions
Xem câu trả lời của tôi ở đây: http://stackoverflow.com/a/25346769/2826409 –