Можно ли создать уведомление, которое воспроизводит определенный Uri, даже если это песня из библиотеки?Когда я пытаюсь передать этот тип Uri, я просто получаю звук уведомления по умолчанию.Я искал решения для этого и нашел много комментариев о том, как сделать так, чтобы уведомление не мешало музыке, но я не могу найти то, что воспроизводит музыку.Я вижу некоторые решения, которые обсуждают, что делать в api> = 26, но я не хочу ограничивать это для oreo и выше, поэтому я предполагаю, что мне нужно одно решение для = O (если нет одного решения, которое будет работать для обоих).Я нашел эту удобную функцию для отображения уведомления и настроил ее на получение Uri
public void showNotification(String title, String content, Uri uriSound) {
if (mNotificationManager == null) return;
NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext, "default")
.setSmallIcon(R.mipmap.ic_launcher) // notification icon
.setContentTitle(title) // title for notification
.setContentText(content)// message for notification
.setSound(uriSound) // set alarm sound for notification
.setAutoCancel(true); // clear notification after click
Intent intent = new Intent(mContext, MyCalendarReceiver.class);
PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(pi);
mNotificationManager.notify(0, builder.build());
}
. Когда я вызываю это, я передаю Uri с путем /external/audio/media/2092
.Я подтвердил, что это песня из библиотеки, воспроизведя ее с помощью медиаплеера ...
private void testMedia(Uri uriSound) {
if (mMediaPlayer != null) {
mMediaPlayer.reset();
mMediaPlayer = null;
}
mMediaPlayer = MediaPlayer.create(mContext, uriSound);
mMediaPlayer.start();
}
Так что она воспроизводится через MediaPlayer, но когда я передаю этот Uri сборщику уведомлений, всеЯ получаю это "динь!"(звук уведомления по умолчанию).Возможно ли, чтобы уведомление воспроизводило песню, или мне нужно показывать уведомление без звука и воспроизводить песню отдельно?ТИА, Майк