【问题标题】:AudioManager returning stream volume as zero even when phone volume is not zero即使电话音量不为零,AudioManager 也将流音量返回为零
【发布时间】:2017-03-12 18:25:37
【问题描述】:

如果手机未处于零音量模式(静音模式或振动模式),我会尝试在我的应用中强制执行某些行为。

这是我的代码:

audioManager =  (AudioManager)getSystemService(Context.AUDIO_SERVICE);
if (audioManager.getStreamVolume(AudioManager.STREAM_RING) == 0 )
                {
                    Log.d("Logmessage"," Audio stream ring volume : "+ audioManager.getStreamVolume(AudioManager.STREAM_RING));

                    return;
                }

//Further logic

但是,if 块之后的逻辑永远不会被执行,因为我总是将振铃流音量设为零。我还检查了铃声模式(它总是返回 RINGER_MODE_VIBRATE)。

有趣的是,我只在 Kitkat OS 以及我的摩托罗拉和联想手机中观察到这一点。该逻辑在我的搭载 Android 6.0 的三星和联想手机中运行良好。

谁能告诉我我遗漏了什么以及我的支票有什么问题? 我在服务中使用此逻辑

【问题讨论】:

    标签: android android-service android-audiomanager


    【解决方案1】:

    提示:您可以在音频系统中查看当前音量和所选设备

    adb shell dumpsys audio
    ...
    - STREAM_RING:
       Muted: true
       Min: 0
       Max: 7
       Current: 1 (earpiece): 5, 2 (speaker): 0, 20 (bt_sco_hs): 5, 80 (bt_a2dp): 5, 40000000 (default): 5
       Devices: speaker
    ...
    Ringer mode:
    - mode (internal) = VIBRATE
    - mode (external) = VIBRATE
    - ringer mode affected streams = 0x126 (STREAM_SYSTEM,STREAM_RING,STREAM_NOTIFICATION,STREAM_DTMF)
    - ringer mode muted streams = 0x126 (STREAM_SYSTEM,STREAM_RING,STREAM_NOTIFICATION,STREAM_DTMF)
    - delegate = ZenModeHelper
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-10
      • 2012-02-26
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      相关资源
      最近更新 更多