Это очень распространенный вопрос, но я не нашел ответа на него. Я создал приложение с Xamarin.Android. Мое приложение создает уведомления локали (с задержкой по времени), оно работает кроме Android 4.4 (на эмуляторе и устройстве).
Мое устройство: Samsung GT-I9195, Android 4,4,2
Это мой код создания уведомления (в BroadcastReceiver):
var builder = new NotificationCompat.Builder(context)
.SetContentTitle(notification.Title)
.SetContentText(notification.Body)
.SetSmallIcon(notification.IconId)
.SetAutoCancel(true);
builder.SetDefaults(NotificationCompat.DefaultAll);
В этом случае работает только вибро.
Я пробовал другие варианты, например:
builder.SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Alam));
...
//load embeded sound
Android.Net.Uri alarmUri = Android.Net.Uri.Parse($"{ ContentResolver.SchemeAndroidResource}:{CrossCurrentActivity.Current.AppContext.PackageName}/{Resource.Raw.sound}");
builder.SetSound(alarmUri);
Я даже пытался запустить медиаплеер (в OnReceive).
MediaPlayer mp = MediaPlayer.Create(CrossCurrentActivity.Current.AppContext, alarmUri);
mp.Start();
Но все это не работает. Только вибрация, без звука. Есть идеи?