gpt4 book ai didi

java - 使用 PhoneStateListener 打开扬声器

转载 作者:行者123 更新时间:2023-12-01 14:50:01 26 4
gpt4 key购买 nike

我正在使用 PhoneStateListener,因此当用户接到电话或开始通话时,扬声器将立即打开。

    PhoneStateListener phoneStateListener = new PhoneStateListener()
{
@Override
public void onCallStateChanged(int state, String incomingNumber)
{
if (state == TelephonyManager.CALL_STATE_RINGING)
{


} else if(state == TelephonyManager.CALL_STATE_IDLE)
{

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

audioManager.setSpeakerphoneOn(false);

} else if(state == TelephonyManager.CALL_STATE_OFFHOOK)
{

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);
}
super.onCallStateChanged(state, incomingNumber);
}
};

TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

if(mgr != null)
{
mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}

这是我使用的代码。它工作得很好,直到我安装了果冻 bean ,现在我注意到它仅在用户接到电话时才打开扬声器,但如果他开始通话,它什么也不做

最佳答案

找到了。

TelephonyManager 似乎只适用于来电。

对于传出调用,请为 IntentFilter 创建一个带有 Intent android.intent.action.NEW_OUTGOING_CALL 字符串参数的广播监听器,并且不要忘记在 AndroidMenifest 中授予 PROCESS_OUTGOING_CALLS 权限。这会起作用。每当有拨出电话时,都会在广播监听器中调用 onReceive。

关于java - 使用 PhoneStateListener 打开扬声器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14983759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com