gpt4 book ai didi

android - 如何打开扬声器在安卓 Jellybean 上打电话

转载 作者:行者123 更新时间:2023-11-29 01:58:30 25 4
gpt4 key购买 nike

我想做的是从我的应用程序调用电话并在此通话中打开扬声器。

在 android 4.0 上一切正常,我只是在开始调用 Intent 之前设置了 audiomanager.setSpeakerphoneOn(true)

但是在 android 4.1 上,PhoneUtils 在通话前检查扬声器状态并将其关闭(logcat):

D/PhoneUtils( 1029): about to activate speaker
D/PhoneUtils( 1029): activateSpeakerIfDocked()...
I/PhoneUtils( 1029): Forcing speaker off when initiating a new outgoing call...

我还尝试使用以下方法监听调用状态:mTelephonyManager.listen(receiver, PhoneStateListener.LISTEN_CALL_STATE);在这个接收器将捕获 3 个状态之后:

  • 空闲(我不感兴趣)
  • CALL_STATE_RINGING(也不感兴趣,因为我需要处理拨出电话)
  • CALL_STATE_OFFHOOK(我虽然这个会有所帮助)

但最后一个“事件”也是在 PhoneUtils 检查扬声器状态(logcat)之前发送的:

11:43:48.089 D/KeyguardViewMediator( 665): keyguard receiver action : android.intent.action.PHONE_STATE
11:43:48.089 D/KeyguardViewMediator( 665): keyguard receiver TelephonyManager.EXTRA_STATE : OFFHOOK
11:43:48.099 D/PhoneUtils( 977): setAudioMode()...OFFHOOK
11:43:48.099 D/MyPhoneStateListener:main( 2590): catching call state CALL_STATE_OFFHOOK
11:43:48.099 D/MyPhoneStateListener:main( 2590): turning phone speaker on
...
11:43:48.119 D/PhoneUtils( 977): about to activate speaker
11:43:48.119 I/PhoneUtils( 977): Forcing speaker off when initiating a new outgoing call...

如果有人面临同样的问题或有解决方案?

谢谢!

最佳答案

这周我遇到了这个问题..

阅读果冻 bean 代码源,我找到了这段代码

// This is not an error but might cause users' confusion. Add log just in case.
Log.i(LOG_TAG, "Forcing speaker off when initiating a new outgoing call...");
PhoneUtils.turnOnSpeaker(app, false, true);

就是这样,在 4.1 版中,android 在来电和去电时强制关闭扬声器。我的解决方案是在开始调用电话后打开通话状态广播接收器中的扬声器

关于android - 如何打开扬声器在安卓 Jellybean 上打电话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13859932/

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