嘿..我打算在我的应用程序中添加一个功能,当用户接到电话时会自动打开扬声器..
这是我的部分代码:
case TelephonyManager.CALL_STATE_OFFHOOK:
//CALL_STATE_OFFHOOK;
setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
am.setMode(AudioManager.MODE_IN_CALL);
am.setSpeakerphoneOn(true);
boolean check = am.isSpeakerphoneOn();
Toast.makeText(Speaker.this, "LoudSpeaker On: "+ check,Toast.LENGTH_LONG).show();
而且我已经在 list 中添加了 MODIFY_AUDIO_SETTINGS 的权限..但是..扬声器无法打开..任何人都可以帮助解决这个问题..在此先感谢..顺便说一下..这个应用程序是在 android 2.1 中实现的
最佳答案
尝试在开机前保持 500 ms ..
所以它会是这样的:
case TelephonyManager.CALL_STATE_OFFHOOK:
// CALL_STATE_OFFHOOK;
try {
Thread.sleep(500); // Delay 0,5 seconds to handle better turning on
// loudspeaker
} catch (InterruptedException e) {
}
setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
am.setMode(AudioManager.MODE_IN_CALL);
am.setSpeakerphoneOn(true);
boolean check = am.isSpeakerphoneOn();
Toast.makeText(Speaker.this, "LoudSpeaker On: " + check,
Toast.LENGTH_LONG).show();
顺便说一句,我有 Xperia 4.1.2,您的初始代码没有任何问题..
关于android - 接听电话时以编程方式激活扬声器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4320325/