Xamarin.Android Alarm Manager SetSound MP3-файл - PullRequest
0 голосов
/ 03 мая 2019

У меня LocalNotificationService И я создаю уведомление для Android там. Как добавить пользовательский звук с именем Sound_04669 в AlarmManager вместо RingtoneManager.GetDefaultUri(RingtoneType.Alarm)

Мой код уведомления о строительстве:

//Generating notification       
        var builder = new NotificationCompat.Builder(Application.Context)       
            .SetContentTitle(notification.Title)       
            .SetContentText(notification.Body)       
            .SetSmallIcon(notification.IconId)       
            .SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Alarm))       
            .SetAutoCancel(true);       

Спасибо всем!

1 Ответ

0 голосов
/ 03 мая 2019

Вы пробовали это?

var alarmUri = Android.Net.Uri.Parse("MyApp.Android/Resources/raw/alarm.mp3");

вот полный код

private void createNotificationChannel()
            {
                var channelName = GetString(Resource.String.noti_chan_urgent);
                var channelDescription = GetString(Resource.String.noti_chan_urgent_description);

                // set the vibration patterm for the channel
                long[] vibrationPattern = { 100, 200, 300, 400, 500, 400, 300, 200, 400 };

                // Creating an Audio Attribute
               var alarmAttributes = new AudioAttributes.Builder()
                                      .SetContentType(AudioContentType.Sonification)
                                      .SetUsage(AudioUsageKind.Alarm)
                                      .Build();

                // Create the uri for the alarm file
                // Note: Make sure you add the mp3 file in your Android project under Resources/raw/soundFile.mp3 and set the build as Android Resource
                var alarmUri = Android.Net.Uri.Parse("MyApp.Android/Resources/raw/alarm.mp3");   


                // create chan1  which is the urgent notifications channel
                var chan1 = new NotificationChannel(PRIMARY_CHANNEL_ID, channelName, NotificationImportance.High)
                {
                    Description = channelDescription
                };


                // set the channel properties
                chan1.EnableLights(true);
                chan1.LightColor = Color.Red;
                chan1.EnableVibration(true);   
                chan1.SetVibrationPattern(vibrationPattern);
                chan1.SetSound(alarmUri, alarmAttributes);          // this is where the sound is set for the channel
                chan1.SetBypassDnd(true);
                chan1.LockscreenVisibility = NotificationVisibility.Public;

                // finally create the channel
                var manager = (NotificationManager)GetSystemService(NotificationService);
                manager.CreateNotificationChannel(chan1);
            }

        }
...