Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Xamarin表单的本地推送通知_C#_Xamarin.android_Xamarin.forms - Fatal编程技术网

C# 使用Xamarin表单的本地推送通知

C# 使用Xamarin表单的本地推送通知,c#,xamarin.android,xamarin.forms,C#,Xamarin.android,Xamarin.forms,我正在尝试使用Xamarin表单的DependencyService实现本地推送通知。 以下是界面: public interface INotification { void SetNotification(DateTime notificationDate, TimeSpan notificationTime); } 以下是andriod的实施: [assembly:Dependency(typeof(NotificationService))] names

我正在尝试使用Xamarin表单的DependencyService实现本地推送通知。 以下是界面:

public interface INotification
    {
        void SetNotification(DateTime notificationDate, TimeSpan notificationTime);
    }
以下是andriod的实施:

[assembly:Dependency(typeof(NotificationService))]
namespace TestMVVM.Droid
{
    public class NotificationService : INotification
    {
        public void SetNotification(DateTime notificationDate, TimeSpan notificationTime)
        {
            Notification.Builder builder = new Notification.Builder(this)
                .SetContentTitle("Test Notification")
                .SetContentText("Notification from Xamarin Forms");
        }
    }
} 
它在
Notification.Builder=new Notification.Builder(this)
上显示错误,如下所示:

无法从“TestMVVM.Droid.NotificationService”转换为 'Andriod.Content.Context'

我确实理解这个问题<代码>上下文允许访问特定于应用程序的资源和类,以及对应用程序级操作(如启动活动、广播和接收意图等)的up调用(请参阅:)。由于它是一个抽象类,我无法创建对象并将其传递给
Builder
的构造函数。 如何将上下文传递给构建器

编辑:谢谢你的帮助。它正在工作,但通知没有显示只有声音在工作。代码如下:

Notification.Builder builder = new Notification.Builder(Xamarin.Forms.Forms.Context)
                .SetContentTitle("Test Notification")
                .SetContentText("Notification from Xamarin Forms")
                .SetDefaults(NotificationDefaults.Sound)
                .SetWhen(Java.Lang.JavaSystem.CurrentTimeMillis());

            Notification notification = builder.Build();
            NotificationManager notificationManager =
                                        Forms.Context.GetSystemService(Context.NotificationService) as NotificationManager;
            const int notificationId = 0;
            notificationManager.Notify(notificationId, notification);

使用
Xamarin.Forms.Forms.Context

[assembly:Dependency(typeof(NotificationService))]
namespace TestMVVM.Droid
{
    public class NotificationService : INotification
    {
        public void SetNotification(DateTime notificationDate, TimeSpan notificationTime)
        {
            Notification.Builder builder = new Notification.Builder (Xamarin.Forms.Forms.Context)
                .SetContentTitle ("Test Notification")
                .SetSmallIcon(Android.Resource.Drawable.AlertDarkFrame)
                .SetWhen (Java.Lang.JavaSystem.CurrentTimeMillis ())
                .SetDefaults (NotificationDefaults.Sound)
                .SetContentText ("Notification from Xamarin Forms");
        }
    }
} 

谢谢你的帮助。它起作用了。但我遇到了另一个问题。通知没有显示,只有声音在工作。我已经编辑了这个问题。请看不好的主意修改原来的问题,你最好创建一个新的线程,但我们已经在这里了。通知未显示,因为您未设置图标。设置任何设置,以便您可以测试它。使用
.SetSmallIcon(Android.Resource.Drawable.AlertDarkFrame)