У меня есть приложение Android, которое уведомляет пользователей уведомлением, но я хочу установить собственный звук для уведомления. У меня есть NotificationHelper
класс, который создает уведомления. Ниже приведен код для создания уведомления. Все работает, как и ожидалось, за исключением звука уведомлений, который является просто стандартным звуковым сигналом моего устройства (Galaxy Tab A, а не AVD). Комментарии - это вещи, которые я уже пробовал, которые не сработали.
public NotificationCompat.Builder getChannel1Notification(String title, String message) {
return new NotificationCompat.Builder(getApplicationContext(), channel1ID)
.setContentTitle(title)
.setContentText(message)
//.setSound(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.piano))
//.setSound(Uri.parse("android.resource://com.tutorial.wufw_locationalarmproject/" + R.raw.piano))
//.setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + getPackageName() + "/raw/piano"))
.setSmallIcon(R.drawable.location_icon);
}
}
Может кто-нибудь пролить свет на это? Я в недоумении, и все вопросы на сайте о подобных проблемах не приближают меня. Ура!
РЕДАКТИРОВАТЬ: Вот моя настройка канала уведомлений.
public NotificationHelper(Context base) {
super(base);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
createChannels();
}
}
@TargetApi(Build.VERSION_CODES.O)
public void createChannels() {
NotificationChannel channel1 = new NotificationChannel(channel1ID, channel1Name, NotificationManager.IMPORTANCE_DEFAULT);
channel1.enableLights(true);
channel1.enableVibration(true);
channel1.setLightColor(R.color.colorPrimary);
channel1.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
getManager().createNotificationChannel(channel1);
}
Я пытался использовать вещь AudioAttributes
для API 26 и выше, но это приводит к тому, что уведомление просто не запускается вообще.