在自定义Android中如何覆盖STREAM_RING作为响应音量按钮的默认AudioService

时间:2013-02-06 22:00:03

标签: android rom

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

我确信除了STREAM_RING(比如STREAM_MUSIC)之外,还可以通过从源创建自定义构建来更改此“默认”行为,这样如果用户在,例如Launcher,并按下音量按钮,则STREAM_MUSIC音量会发生变化。 (这个要求是因为设备没有电话,所以铃声音量是无操作的。)

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

是否有一个'更高'的活动或系统进程正在运行,以STREAM_RING作为频道处理将VOLUME发送到AudioManager? 或者是否可以设置AudioManager中的某些内容,以便它处理对STREAM_MUSIC的VOLUME更改(这似乎不太可能来自源,因为它似乎只在应用程序首选STREAM的上下文中处理STREAM。

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

1 个答案:

答案 0 :(得分:2)

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

中找到

我使用叠加层将“config_voice_capable”设置为false,然后构建rom。

设备启动后,音量控件不再默认为RINGER流。 我无法找到有关这方面的差异的文档 桌面和手机设备,但解决方案有效。