我正在尝试在audiomanager.setSpeakerphoneOn(true)
服务中以编程方式在通话中设置免提电话,但它似乎不起作用,我不知道为什么。我应该做点别的吗?
谢谢
我正在尝试在audiomanager.setSpeakerphoneOn(true)
服务中以编程方式在通话中设置免提电话,但它似乎不起作用,我不知道为什么。我应该做点别的吗?
谢谢
检查您的清单文件是否具有执行此操作所需的权限。
我认为这是您需要的权限MODIFY_AUDIO_SETTINGS
在 android 4.1 及更高版本中,当您拨打电话时,手机会自动关闭免提电话。因此,您需要做的是在接收器中添加免提电话,以便在状态为“摘机”时侦听正在拨打的电话,甚至延迟 0.5 秒以打开扬声器,如下所示:
final Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
MainActivity.shouldTurnSpeakerOn = false;
MainActivity.shouldTurnSpeakerOff = true;
Log.d("incoming_call","speaker_on");
}
}, 500);
请记住将此添加到 Phone 状态侦听器。并在状态为 IDLE 时关闭免提电话(早期版本需要)。
祝你好运。