SoundPoolの音量を端末の音量から反映するには

Android(XPERIA)でゲームアプリを作るにあたり、BGMと着地音を出すことにした。
BGMにはMediaPlayerクラス、着地音にはSoundPoolクラスを使って効果音を出している。

// BGM -> bgm
MediaPlayer mp = MediaPlayer.create(this, R.raw.bgm);
mp.start();

// 着地音 -> dan
SoundPool sp = new SoundPool(0, AudioManager.STREAM_MUSIC, 0);
int soundID = sp.load(activity,R.raw.dan, 0);
sp.play(soundID, 50, 50, 0, 0, 0);
		

ゲームをしていて音量が大きいと思いXPERIAの横にあるボリュームボタンで音量を下げると、 BGMのボリュームは下がっても着地音のボリュームは下がらなかった。
SoundPool.playメソッドの第二引数、第三引数で左右のスピーカーの音量を指定しているのが原因である。

そこでXPERIA本体の音量を取得し再生音量に反映することにした。

int ringVol = audio.getStreamVolume(AudioManager.STREAM_RING);
SoundPool sp = new SoundPool(0, AudioManager.STREAM_MUSIC, 0);
int soundID = sp.load(activity,R.raw.dan, 0);
sp.play(soundID, ringVol, ringVol, 0, 0, 0);