Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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# 按下Android通知按钮(AddAction)可生成祝酒词_C#_Android_Notifications_Xamarin.android - Fatal编程技术网

C# 按下Android通知按钮(AddAction)可生成祝酒词

C# 按下Android通知按钮(AddAction)可生成祝酒词,c#,android,notifications,xamarin.android,C#,Android,Notifications,Xamarin.android,我想在通知(存档)的按钮上添加一个操作,就像有人单击它时,它会显示一条toast消息,下面是一个示例图像: 这是我的pendingent代码行: var contentIntent=pendingent.GetActivity(context,0,resultint,pendingentFlags.CancelCurrent); 这是我的通知生成器代码: var builder=new NotificationCompat.builder(上下文) .SetContentIntent(con

我想在通知(存档)按钮上添加一个操作,就像有人单击它时,它会显示一条toast消息,下面是一个示例图像:

这是我的
pendingent
代码行:

var contentIntent=pendingent.GetActivity(context,0,resultint,pendingentFlags.CancelCurrent);
这是我的通知生成器代码:

var builder=new NotificationCompat.builder(上下文)
.SetContentIntent(contentIntent)
.SetSmallIcon(Resource.Drawable.ic_启动器)
.SetContentTitle(标题)
.SetStyle(style).SetWhen(Java.Lang.JavaSystem.CurrentTimeMillis())
.AddAction(Resource.Drawable.tick_notify,“归档”,contentIntent)
.AddAction(Resource.Drawable.cancel_通知,“回复”,pIntent)
.SetAutoCancel(真);
//检查波纹管
builder.SetDefaults((int)(NotificationDefaults.Sound | NotificationDefaults.Vibrate));
所以一般来说,我想制作一个按钮来发出通知,而不是启动一个活动等等

请帮助我,我是Xamarin.android的新手。

编辑:

根据您提供给我的答案,这是我的完整代码,但我仍然得到一个例外:

使用系统;
使用Android.App;
使用Android.Content;
使用Android.Media;
使用Android.Support.V4.App;
使用System.Collections.Generic;
使用System.Collections.ObjectModel;
使用系统诊断;
利用制度全球化;
使用Android.Widget;
机器人
{
[广播接收机]
[IntentFilter(新字符串[]{“android.intent.action.BOOT_COMPLETED”},优先级=(int)IntentFilterPriority.LowPriority]
公共类AlarmReceiver:BroadcastReceiver
{
公共覆盖void OnReceive(上下文、意图)
{
var message=intent.GetStringExtra(“消息”);
var title=intent.GetStringExtra(“title”);
//在这里敬酒
Toast.MakeText(上下文,“你好,是我”,ToastLength.Short).Show();
var extras=意图。extras;
if(extras!=null&!extras.IsEmpty)
{
NotificationManager作为NotificationManager,它=context.GetSystemService(context.NotificationService);
var notificationId=extras.GetInt(“NotificationIdKey”,-1);
如果(notificationId!=-1)
{
经理取消(通知ID);
}
}
AlarmReceiver customReceiver=新的AlarmReceiver();
//为行动1创建意图(采取)
var actionIntent1=newintent();
actionIntent1.SetAction(“存档”);
var pIntent1=PendingIntent.GetBroadcast(上下文,0,actionIntent1,PendingIntentFlags.CancelCurrent);
//为行动2创建意图(回复)
var actionIntent2=新意图();
actionIntent2.SetAction(“回复”);
var pIntent2=PendingIntent.GetBroadcast(上下文,0,actionIntent2,PendingIntentFlags.CancelCurrent);
Intent resultent=context.PackageManager.GetLaunchIntentForPackage(context.PackageName);
/*
var resultint=新意图(上下文、类型(MainActivity));
resultIntent.SetFlags(ActivityFlags.NewTask | ActivityFlags.ClearTask)*/
var contentIntent=PendingIntent.GetActivity(上下文,0,resultIntent,PendingIntentFlags.CancelCurrent);
var pending=pendingent.GetActivity(上下文,0,
结果,
PendingEventFlags.CancelCurrent);
//实例化大文本样式:
Notification.BigTextStyle textStyle=新通知.BigTextStyle();
var builder=new Notification.builder(上下文)
.SetContentTitle(“糖尿病提醒”)
.SetDefaults(NotificationDefaults.Sound)
.AddAction(Resource.Drawable.tick_notify,“REPLY”,pIntent1)
.AddAction(Resource.Drawable.cancel_通知,“存档”,第2页)
.SetSmallIcon(Resource.Drawable.ic_启动器)
.SetStyle(新通知)
.BigTextStyle()
.SetSummaryText(“”)
.SetBigContentTitle(标题)
.BigText(信息))
.SetDefaults(NotificationDefaults.All);
builder.SetContentIntent(待定);
var notification=builder.Build();
//为每个动作添加意图过滤器,并将其注册到广播接收器上
var intentFilter=new intentFilter();
intentFilter.AddAction(“归档”);
intentFilter.AddAction(“回复”);
RegisterReceiver(customReceiver、intentFilter);
var manager=NotificationManager.FromContext(上下文);
经理通知(10010,通知);
}
}
}
这是错误图像:


您需要一个
BroadcastReceiver
才能在单击操作时显示
Toast
。 对于每个操作,您需要一个激发BroadcastReceiver意图的
意图。下面是一个关于其外观的示例:

自定义广播接收器

[广播接收器]
公共类CustomActionReceiver:BroadcastReceiver
{
公共覆盖void OnReceive(上下文、意图)
{
//在这里敬酒
Toast.MakeText(context、intent.Action、ToastLength.Short).Show();
var extras=意图。extras;
if(extras!=null&!extras.IsEmpty)
{
NotificationManager=context.GetSystemService(context.NotificationService)作为NotificationManager;
var notificationId=extras.GetInt(“NotificationIdKey”,-1);
如果(通知ID=