谷歌文档指出,如果应用程序没有播放任何内容,按音量键可调整铃声音量。见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。