我正在使用AudioManager,这是一个Android SystemService。 使用Android系统5.0+,我遇到一个问题,哪个AudioManager的setMode方法不起作用。
我通过测试, Android M,Lollipop .. 5.0+版本,AudioManager setMode无效。 例如:$employees = wrapSameId( $PDOArray );
但是Android 3.0 +,4.0 +还可以,只有5.0+。 所以,我不知道错误发生在哪里。
答案 0 :(得分:4)
将音频模式设置为:
setMode(AudioManager.MODE_IN_COMMUNICATION);
setSpeakerphoneOn(false);
当我的音频流设置为STREAM_MUSIC时,我可以轻松地将音频路由到听筒。我已经在AOSP Lollipop代码中自己测试了它。
在这个问题中,您从未提及过您的流类型。将您的流设置为STREAM_MUSIC或STREAM_VOICE_CALL,代码也适用于您。
答案 1 :(得分:1)
在android Lollipop中setAudioMode(AudioManager.MODE_IN_CALL)
受到限制。它只能由具有MODIFY_PHONE_STATE
权限的系统应用程序使用。但是,您可以在正常的应用程序中使用MODE_IN_COMMUNICATION
和MODE_NORMAL
。