使用Xamarin Forms(目前仅是Android平台),我正在尝试通过Azure和Firebase使Notifications正常工作。在当前状态下,该通知已收到并具有内容,因此它不为null,它只是表示“ Azure测试通知”的基本通知。但是,我整天都在Google上搜索,由于某种原因,我找不到我的问题的答案:通知将不会显示且没有错误,它只是跳过代码而没有执行任何操作。
在MainActivity中创建频道(我在这里这样做是因为docs.microsoft同意)
if (Build.VERSION.SdkInt < BuildVersionCodes.O)
{
// Notification channels are new in API 26 (and not a part of the
// support library). There is no need to create a notification
// channel on older versions of Android.
return;
}
var name = Resources.GetString(Resource.String.AppName);
var description = GetString(Resource.String.Description);
var channel = new NotificationChannel("4867453", name, NotificationImportance.Default)
{
Description = description
};
var notificationManager = (NotificationManager)GetSystemService(NotificationService);
notificationManager.CreateNotificationChannel(channel);
在我的单独服务类别中,
var intent = new Intent(this, typeof(MainActivity));
intent.AddFlags(ActivityFlags.ClearTop);
var pendingIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.OneShot);
NotificationCompat.Builder notification = new NotificationCompat.Builder(this, Channel_ID)
.SetContentTitle("Test Message")
.SetContentText(messageBody)
.SetContentIntent(pendingIntent);
var notificationManager = GetSystemService(Context.NotificationService) as NotificationManager;
notificationManager.Notify(Notification_ID, notification.Build());
其中一些(主要是Intent的东西)是我在Microsoft Docs上发现的,并没有对应用程序的正常运行产生任何影响,我在测试之前已将其删除,但没有任何影响。 / p>
如果我说实话,我可能会做些愚蠢的事情,但是,如果有人能对我的问题有所了解,我将不胜感激。谢谢:)。
答案 0 :(得分:0)
当我开始使用Android 9(Pie)时遇到了类似的问题。
事实证明,在Android 9.0中,他们弃用了Apache HTTP Client软件包所依赖的NotificationHubs Bindings nuget。
根据他们的文档:
要继续使用Apache HTTP客户端,面向Android 9的应用 及以上版本可以将以下内容添加到其AndroidManifest.xml中:
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
添加此内容后,我的通知再次开始工作。
似乎有一个GitHub issue表示已修复,但是他们的nuget包似乎真的过时了。