【发布时间】:2016-07-01 19:24:07
【问题描述】:
所以我遇到了一个奇怪的问题,调用 AudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI) 不再触发我刚刚更新到 6.0 的设备上的系统音量更改。
在所有 6 之前的设备上,此代码按预期工作。我确实注意到了对 AudioManager 的更改,其中 setStreamVolume 已被弃用,但建议的替代方案是我已经在使用的...
起初我认为这可能是权限问题,因为MODIFY_AUDIO_SETTINGS 被列为危险权限,但我检查了ContextCompat.checkSelfPermission(this, Manifest.Permission.MODIFY_AUDIO_SETTINGS) == PackageManager.PERMISSION_GRANTED(权限设置页面中也没有与音频相关的权限,所以我'我假设情况并非如此)。
我尝试了另一种推荐的方法adjustVolume(AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI),但也没有产生任何结果。
所以,澄清一下:
调用 adjustStreamVolume/adjustVolume 时没有任何视觉上的变化,AudioManager.getStreamVolume(AudioManager.STREAM_MUSIC) 返回不变的值,就好像它从未被调用过一样。
如果有人对此有任何想法,我现在真的很想听听。
编辑:
自从发布此内容后,我已转而使用 setStreamVolume(AudioManager.STREAM_MUSIC, value, AudioManager.FLAG_SHOW_UI),尽管文档说它不再应该这样做,但它仍然有效。
希望对此有一些想法......
编辑 2:
打开an issue,因为我可以在另一台设备上复制
【问题讨论】:
-
在有关AudioManager.setStreamVolume 的文档中,它没有任何作用。只有关于“请勿打扰”模式的评论。我不知道为什么
adjustStreamVolume不起作用。 -
感谢您回复我。我指的是 6.0 更改中的注释:developer.android.com/about/versions/marshmallow/…