我正在使用NotificationChannel
定义我的应用通知。我用以下代码设置了声音:
AudioAttributes.Builder constructeurAttributsAudio=new AudioAttributes.Builder();
constructeurAttributsAudio.setUsage(AudioAttributes.USAGE_NOTIFICATION_EVENT);
canalNotification.setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + contexte.getPackageName() + "/raw/cloche"),constructeurAttributsAudio.build());
出现通知时,声音会正确发出,但是音量设置为最大值,并且未考虑用户为通知设置的声音级别。有谁知道我如何让我的应用将通知声音级别设置为用户选择的值?
编辑#1:如果我复制代码以在应用程序正文中执行代码(通过单击Button
触发),而不是在我的onReceive
的{{1}}方法中执行该通知,则该通知声音会按照用户选择的通知声音级别正确发出。
编辑#2:奇怪的是,在模拟器上执行该应用程序时,通知声音级别正确!原因可能是手机配置中的参数吗? (它们都在Android 9下运行)。
答案 0 :(得分:0)
我使用以下代码,希望也对您有用:
private void setvolume(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();
}
答案 1 :(得分:0)
卸载并重新安装该应用程序即可解决问题!