我正在尝试在我的应用程序中实现自定义通知声音。
我编写了以下代码,但应用程序仅播放默认声音,而不播放我在原始文件夹中添加的自定义声音。收到通知后,日志甚至不会抛出任何错误或异常来说明为什么不播放自定义声音。我尝试在网上搜索并尝试采用不同的方法但无济于事。
请让我知道我哪里出错了。
编辑:有人可以发布它的代码吗,我似乎找不到任何有效的东西
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.notify);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel("MyCuS Notification", "My Notification", NotificationManager.IMPORTANCE_HIGH);
NotificationManager manager = getSystemService(NotificationManager.class);
AudioAttributes.Builder audioAttributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE);
channel.setSound(Uri.parse("android.resources://" + getPackageName() + "/" + R.raw.bg_reminder_alarm),audioAttributes.build());
manager.createNotificationChannel(channel);
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this, "MyCuS Notification");
builder.setContentTitle("MyTitle");
builder.setContentText("TESTING");
builder.setSmallIcon(R.drawable.ic_launcher_background);
builder.setAutoCancel(true);
builder.setSound(Uri.parse("android.resources://" + getPackageName() + "/" + R.raw.bg_reminder_alarm));
NotificationManagerCompat managerCompat = NotificationManagerCompat.from(MainActivity.this);
managerCompat.notify(1, builder.build());
}
});
}
编辑2:我尝试删除现有频道并发送通知来创建新频道,当新创建频道的描述在发送第二个通知后发生变化时,就好像该频道被覆盖或删除并创建了新的默认频道。
从 Android Oreo / 8 开始,Notificationsound 来自频道,并且只能在您第一次通过 channel.setSound() 添加频道时进行设置。
如果您想稍后更改它,您需要删除该频道,然后将其重新添加到系统中。不过,用户会收到有关该行为的警告(应用程序删除频道 X 次)。https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels
如果您希望每次都有自定义声音,则需要一个不带 Channelsound 的 ForegroundService 作为其前台通知 (setSound(null)),然后使用通知流上的 MediaPlayer 来播放自定义声音。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)