Android 5.0+ AudioManager setMode无法正常工作

时间:2015-08-07 06:47:55

标签: android android-audiomanager

我正在使用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+。 所以,我不知道错误发生在哪里。

2 个答案:

答案 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_COMMUNICATIONMODE_NORMAL