3

谷歌文档指出,如果应用程序没有播放任何内容,按音量键可调整铃声音量。见http://developer.android.com/training/managing-audio/volume-playback.html#HardwareVolumeKeys

我确信可以通过从源代码创建自定义构建来更改除了 STREAM_RING(比如 STREAM_MUSIC)之外的这种“默认”行为,这样如果用户在启动器上,并按下音量按钮,STREAM_MUSIC 音量将改变。(这是因为设备没有电话,所以铃声音量是无操作的)。

我查看了启动器代码,但它没有显示(至少我看不到)音量按钮是通过 AudioManager 定向/使用到 STREAM_RING 的。此外,当在“设置”中时,音量按钮会更改 STREAM_RING,这让我进一步相信存在“上链”或“在应用程序框架或 Android 运行时中的堆栈下”。

是否有一个“更高”的活动或系统进程正在运行,以 STREAM_RING 作为通道处理将 VOLUME 分派到 AudioManager?或者 AudioManager 中是否有可以设置的东西,以便它处理对 STREAM_MUSIC 的 VOLUME 更改(从源头看来这似乎不太可能,因为它似乎只在应用程序首选 STREAM 的上下文中处理 STREAM。

我使用的来源是 Ice Cream Sandwich 4.0.3。

4

1 回答 1

2

该解决方案似乎将“config_voice_capable”设置为false。此值位于 frameworks/base/core/res/res/values/config.xml

我使用覆盖将“config_voice_capable”设置为false,然后构建了rom。

设备启动后,音量控制不再默认为 RINGER 流。我无法找到有关表格和支持电话的设备之间差异的文档,但该解决方案有效。

于 2013-02-27T15:17:51.330 回答