xamarin 在Android 12上未收到Firebase推送通知

dnph8jn4  于 2022-12-07  发布在  Android
关注(0)|答案(4)|浏览(249)

我的Xamarin。Android应用的推送通知仅适用于Android 11(泛指el 3 XL)。目前我的应用程序面向Android 11,但它也可以在Android 12上运行(泛指el 6 Pro)。唯一不起作用的是Firebase推送通知。下面是我正在使用的代码。在过去的一周里,我一直在研究这个问题,并看到了关于Android 12特定问题的帖子(像素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);

            }
htrmnn0y

htrmnn0y1#

我错过的是

PendingIntent.FLAG_IMMUTABLE

如果通知具有pendingIntent,则为其设置可变/不可变标志

hec6srdp

hec6srdp2#

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)
laximzn5

laximzn53#

找到了解决方案。那就是在AndroidManifest内的Firebase服务标签上添加android:exported ="false"

kiayqfof

kiayqfof4#

我也面临着类似的问题(Android/Kotlin),虽然我已经修改了待定意图的变化,并设置“导出=假”仍然,应用程序没有收到推送通知。
以下是firebase版本

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'

相关问题