gpt4 book ai didi

Android + Xamarin 推送通知自定义声音不会播放

转载 作者:搜寻专家 更新时间:2023-11-01 08:33:03 25 4
gpt4 key购买 nike

我一直在研究在我的 Android Xamarin 应用程序中播放自定义声音的简单概念,但无论我尝试什么,声音都不会播放。

我在 Resources 下创建了一个“raw”文件夹,并添加了一个合适的声音文件。我已确保将该文件构建为 Android 资源。

这是我的代码:

// note I have also tried just /raw/NotificationSound, /integeridofresource and many other formats
string sSoundUrl = "android.resource://" + AppGlobals.PackageName + "/raw/NotificationSound.wav";

Notification nNotification = new Notification.Builder(this.Activity).SetSmallIcon(Resource.Drawable.AppIcon)
.SetContentTitle("Test title")
.SetContentText("Hello notifications")
.SetAutoCancel(true)
.SetSound(Android.Net.Uri.Parse(sSoundUrl)).Build();

// I have tried 0, All, NotificationDefaults.Sound basically all different combinations
nNotification.Defaults = NotificationDefaults.Lights;

NotificationManager nmNotManager = (NotificationManager)this.Activity.GetSystemService(Context.NotificationService);

nmNotManager.Notify(0, nNotification);

我希望有人能发现我做错了什么......

谢谢!!!

最佳答案

看起来您很接近,您的代码与我们在多个 Xamarin.Android 应用程序中使用的代码之间只有一些细微差别。

我认为显着的区别在于我们使用 GcmListenerService 派生类作为上下文而不是 this.Activity,我们在路径,我们为通知生成一个唯一的 ID,并设置一个 Intent 。

下面是一些展示该方法的代码:

        var intent = new Intent(context, typeof(MainActivity));
intent.PutExtra(MainActivity.GoToAction, action);
intent.AddFlags(ActivityFlags.ClearTop | ActivityFlags.SingleTop);
var pushId = DateTime.Now.TimeOfDay.Milliseconds;
var pendingIntent = PendingIntent.GetActivity(context, pushId, intent, PendingIntentFlags.OneShot);

// Set custom push notification sound.
var pathToPushSound = "android.resource://" + context.ApplicationContext.PackageName + "/raw/pushalert";
var soundUri = Android.Net.Uri.Parse(pathToPushSound);

var notificationBuilder = new Android.App.Notification.Builder(context)
.SetSmallIcon(Resource.Drawable.icon_transparent)
.SetContentTitle(title)
.SetContentText(message)
.SetAutoCancel(true)
.SetSound(soundUri)
.SetStyle(new Android.App.Notification.BigTextStyle().BigText(message))
.SetVibrate(new long[] {100, 1000, 100})
.SetLights(Android.Resource.Color.HoloOrangeDark, 1, 1)
.SetContentIntent(pendingIntent);

var notificationManager = (NotificationManager) context.GetSystemService(Context.NotificationService);
notificationManager.Notify(pushId, notificationBuilder.Build());

关于Android + Xamarin 推送通知自定义声音不会播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39107147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com