I'm trying to register a broadcast receiver to handle the VOLUME_CHANGED_ACTION
event, only for the volume_voice
stream type (which I empirically see to be index 0
in Settings.System.VOLUME_SETTINGS
).
The label EXTRA_VOLUME_STREAM_TYPE
is hidden, so I have used the explicit string "android.media.EXTRA_VOLUME_STREAM_TYPE"
instead. It all worked fine on Android 2.3.4 (got value 0
for volume_voice
as expected), but on 2.3.5 the value that this extra holds is 10
, which gives an ArrayIndexOutOfBoundsException
on Settings.System.VOLUME_SETTINGS
.
Moreover, I see that volume_voice
is still index 0
in Settings.System.VOLUME_SETTINGS
.
Is there a more robust way to handle VOLUME_CHANGED_ACTION
for volume_voice
stream types?
Edit Or any other way to do what the title asks for?