我正在尝试在我的应用程序中实现自定义通知声音。
我编写了以下代码,但是应用程序只播放默认声音,而不是我在raw文件夹中添加的自定义声音。接收通知时,日志甚至没有抛出任何错误或异常,说明为什么它不播放自定义声音。我尝试在网上搜索并尝试了不同的方法,但都没有成功。请告诉我我做错了什么。
编辑:有人可以发布此代码吗? 我似乎找不到任何可行的东西。
编辑:有人可以发布此代码吗? 我似乎找不到任何可行的东西。
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:我尝试删除现有的频道并发送通知以创建新的频道,当新创建的频道在发送第二个通知后,频道的描述会更改,就好像覆盖或删除了该频道并创建了新的默认频道。