xamarin 如何在.NET MAUI下使用通知通道.SetSound

uxhixvfz  于 2023-02-06  发布在  .NET
关注(0)|答案(1)|浏览(350)

我目前正在将我的一个项目从Xamarin.Forms迁移到. NET MAUI。因此,由于Android. Net. Uri(Notification.SetSound(uri, attributes);需要)和MAUI中使用的System. Uri不兼容,我很难将NotificationChannel的创建迁移到MAUI。
NotificationChannel应具有特定的通知声音,位于项目的resources文件夹中。
Xamarin表中使用了以下代码:

var alarmAttributes = new AudioAttributes.Builder()
    .SetContentType(AudioContentType.Sonification)
    ?.SetUsage(AudioUsageKind.Alarm)
    ?.Build();

Android.Net.Uri alarmUri =
    Android.Net.Uri.Parse(
    $"{ContentResolver.SchemeAndroidResource}://{ApplicationContext?.PackageName}/{Resource.Raw.alarm}");

var alarmChannel = new NotificationChannel(id: Constants.AlarmNotificationChannel,
    name: "Alarm",
    importance: NotificationImportance.Max)
{
    Description = "Highest priority notifications appear in this channel"
};
alarmChannel.EnableLights(true);
alarmChannel.EnableVibration(true);
alarmChannel.SetBypassDnd(true);
alarmChannel.SetShowBadge(true);
alarmChannel.SetSound(alarmUri, alarmAttributes);
notificationChannels.Add(alarmChannel);

是否可以在. NET MAUI下设置通知频道的声音?如何实现这一目标?
先谢了!

0kjbasz6

0kjbasz61#

您的代码运行在Xamarin.Android中,在maui中调用Android的代码必须尝试使用handler,MAUI中的Handler系统用于处理不同平台的原生控件的实现,如果要创建控件,只需创建基于不同平台的handler即可。
您可以访问此链接:Create a custom control using handlers.
GitHub上有一个方法:Plugin.LocalNotification。本地通知插件提供了一种显示来自. Net MAUI的本地通知的方式。其中一个这样的特性是Maui平台支持的自定义声音。
插件。本地通知在NuGet上可用:https://www.nuget.org/packages/Plugin.LocalNotification.
希望能帮到你。

相关问题