Wenn meine App ausgeführt wird (im Vordergrund und Hintergrund), kann ich Benachrichtigungen erhalten und die Benachrichtigungen an den Benutzer mit Android NotificationManager
anzeigen. Nach dem Verschieben der App von den Recents, wenn die App eine Benachrichtigung erhält, erhalte ich die Nachricht .GCM Benachrichtigung stürzt App nach dem Schließen der App
Ich weiß, dass die App in der Lage sein sollte, Benachrichtigungen zu erhalten, nachdem sie weggeschwemmt wurde, weil ich Baidu-Benachrichtigungen bereits eingerichtet habe, und ich kann sie empfangen, nachdem ich die App weggewischt habe. Aber mit GCM verursacht es nur einen Absturz der App. Hier ist der Code in Frage:
[BroadcastReceiver(Name = "com.my.pkg.MyGcmReceiver", Exported = true, Permission = "com.google.android.c2dm.permission.SEND")]
[IntentFilter(new string[] { "com.google.android.c2dm.intent.RECEIVE" }, Categories = new string[] { "com.my.pkg" })]
public class MyGcmReceiver : GcmReceiver
{
public override void OnReceive(Context context, Intent intent)
{
base.OnReceive(context, intent);
System.Diagnostics.Debug.WriteLine("MyGcmReceiver - OnReceive called &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
CreateNotification();
}
private void CreateNotification()
{
NotificationCompat.Builder builder = new NotificationCompat.Builder(Xamarin.Forms.Forms.Context);
builder.SetAutoCancel(true);
builder.SetDefaults(NotificationCompat.DefaultAll);
builder.SetSmallIcon(Resource.Drawable.icon);
builder.SetContentTitle("HI");
builder.SetContentText("MSG FROM GCM");
builder.SetPriority((int)NotificationPriority.Max);
NotificationManager manager = (NotificationManager)Xamarin.Forms.Forms.Context.GetSystemService(Context.NotificationService);
manager.Notify(0, builder.Build());
}
}
Durch kommentieren Sie die Zeile CreateNotification();
im OnReceive
Methode, die App wird nicht abstürzen, aber natürlich dann ist es nicht zu schaffen, und die Meldung anzeigen.
Warum verwenden Sie Google Cloud Messaging und nicht Firebase Could Messaging? –
@MadhavShenoy Ich schrieb das gleiche. –
: D Mit FCM müssen Sie keinen Code zum Verarbeiten von Benachrichtigungen schreiben –