如何以编程方式设置通知音量?

Vit*_*kov 5 notifications android android-audiomanager

我的主要活动中有这种方法

private void beep()
{
    AudioManager manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    manager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, 0,
            AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND);
    Uri notification = RingtoneManager
            .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    Ringtone r = RingtoneManager.getRingtone(getApplicationContext(),
            notification);
    r.play();
}
Run Code Online (Sandbox Code Playgroud)

据我了解,通知音量应由STREAM_NOTIFICATION调节.但是,尽管setStreamVolume方法中的卷号,通知始终使用相同的卷.这是为什么?

Vit*_*kov 8

我走了另一条路.这不是我的问题的答案,而是恰当的答案.当我在STREAM_MUSIC中播放通知时,一切都很好.因此,通知与我作为参数传递给函数的卷完全一致

private void beep(int volume)
{
    AudioManager manager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
    manager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);

    Uri notification = RingtoneManager
            .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

    MediaPlayer player = MediaPlayer.create(getApplicationContext(), notification);
    player.start();
}
Run Code Online (Sandbox Code Playgroud)