My Xamarin.Android应用程序的推送通知仅适用于Android 11(Pixel 3 XL(。目前,我的应用程序以Android 11为目标,但它也在Android 12(Pixel 6 Pro(上运行。唯一不起作用的是Firebase推送通知。下面是我正在使用的代码。在过去的一周里,我一直在研究这个问题,并看到了关于安卓12(Pixel 6(没有收到推送通知的特定问题的帖子。我对其他人建议的手机配置进行了更改,另一个应用程序通知开始工作,但我的仍然没有。任何想法都会有所帮助。谢谢
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.
var name = "NameOfChannel";
var description = "Notification Channel";
var channel = new NotificationChannel(CHANNEL_ID, name, NotificationImportance.Max)
{
Description = description
};
var notificationManager = (NotificationManager)GetSystemService(NotificationService);
notificationManager.CreateNotificationChannel(channel);
}
我错过的是
PendingIntent.FLAG_IMMUTABLE
如果Notification具有pendingIntent,则为其设置可变/不可变标志
找到了解决方案。其中添加了android:exported="false">在AndroidManifest中的Firebase服务标签上。
PendingIntent pendingIntent;
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.S)
{
pendingIntent=PendingIntent.getActivity(context,notificationId,notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT|PendingIntent.FLAG_MUTABLE);
}
else
{
pendingIntent=PendingIntent.getActivity(context,notificationId,notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT);
}
builder.setContentIntent(pendingIntent)
我也面临类似的问题(Android/Kotlin(,尽管我修改了Pending Intent更改并设置了";exported=false";不过,应用程序没有收到推送通知。
下面是防火基地版
implementation platform('com.google.firebase:firebase-bom:31.0.3')
implementation 'androidx.work:work-runtime-ktx'
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-iid'