Xamarinフォーム用のDependencyServiceを使用してローカルプッシュ通知を実装しようとしています。 ここインターフェース:Xamarinフォームによるローカルプッシュ通知
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 builder = new Notification.Builder(this)
上のエラーを示している。
は 'TestMVVM.Droid.NotificationService' から変換できません〜 'Andriod.Content.Context'
私はこの問題を理解しています。 Context
は、アプリケーション固有のリソースやクラスへのアクセス、起動アクティビティ、ブロードキャストと受信インテントなどのアプリケーションレベルの操作のアップコールを許可します(https://developer.xamarin.com/api/type/Android.Content.Context/#Remarks参照)。抽象クラスなので、オブジェクトを作成してコンストラクタBuilder
に渡すことはできません。 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);
感謝。できます。しかし私は別の問題にぶつかってきました。通知が表示されていない、サウンドだけが動作しています。私は質問を編集しました。どうぞお気軽に – Vivek
元の質問を修正してください。新しいスレッドを作成したほうがいいですが、すでにここにあります。アイコンを設定していないため、通知が表示されません。あなたがそれをテストできるように何かを設定してください。 '.SetSmallIcon(Android.Resource.Drawable.AlertDarkFrame)'を使う – apineda