Android 5.0+ AudioManager setMode不起作用 [英] Android 5.0+ AudioManager setMode not working

查看:146
本文介绍了Android 5.0+ AudioManager setMode不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用AudioManager(这是一个Android SystemService).在Android System 5.0及更高版本中,我遇到了一个AudioManager setMode方法不起作用的问题.

i am working on AudioManager which is a Android SystemService. with Android System 5.0+ , i encounter a problem which AudioManager the setMode method is not working .

i通过测试,Android M,棒棒糖.. 5.0或更高版本,AudioManager setMode无法正常工作.例子:

i through a test , Android M, Lollipop.. 5.0+ version , AudioManager setMode is not working . example :

public void initAudioImageIcon(boolean initLoad) {
    boolean isAudioHeaderMode = IMSharedPreferences.getBooleanExtra(this, IMSPConstant.SP_NAME_MESSAGE,
            IMSPConstant.SP_KEY_AUDIO_HEADER_MODE);


    if (isAudioHeaderMode) {
        mAudioHanderMode.setVisibility(View.VISIBLE);
        // audioManager.setMode(AudioManager.MODE_IN_CALL) , but android system 5.0+ no any change, getMode() == AudioManager.MODE_NORMAL
        setAudioMode(AudioManager.MODE_IN_CALL);
        audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
        if (!initLoad) {
            showAudioModePrompt(this.getText(R.string.im_audio_in_call), 1000);
        }
    } else {
        mAudioHanderMode.setVisibility(View.GONE);
        setAudioMode(AudioManager.MODE_NORMAL);
        if (!initLoad) {
            showAudioModePrompt(this.getText(R.string.im_audio_in_speeker), 1000);
        }
    }
}

但是Android 3.0 +,4.0 +可以,只有5.0+.所以,我不知道哪里发生错误.

but Android 3.0+,4.0+ is ok ,only 5.0+ . so ,i don`t know where happen mistakes.

推荐答案

将音频模式设置为:

setMode(AudioManager.MODE_IN_COMMUNICATION);
setSpeakerphoneOn(false);

当我的音频流设置为STREAM_MUSIC时,我可以轻松地将音频路由到听筒.我已经在AOSP Lollipop代码中对它进行了测试.

while my audio stream is set to STREAM_MUSIC I can easily route audio to earpiece. I have tested it myself in AOSP Lollipop code.

这里是您从未提及的有关流类型的问题.一定要将流设置为STREAM_MUSIC或STREAM_VOICE_CALL,并且代码也应该对您有用.

Here in the question you have never mentioned about your stream type. Do set your stream to STREAM_MUSIC or STREAM_VOICE_CALL and the code should work for you too.

这篇关于Android 5.0+ AudioManager setMode不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆