我可以在我的应用运行时向我的Android手机和模拟器发送推送通知。 (我可以告诉他们,因为我的应用程序崩溃了。)
那么为什么系统托盘中不会显示通知?几个小时后,当我看着我的手机时,他们做了几次。我不知道为什么会这样。
我是从Firebase云消息传递屏幕发送的,它说消息是“已完成”。
这是一些代码......
[Service]
[IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
public class FirebaseIIDService : FirebaseInstanceIdService
{
const string TAG = "MyFirebaseIIDService";
public override void OnTokenRefresh()
{
var refreshedToken = FirebaseInstanceId.Instance.Token;
Log.Debug(TAG, "Refreshed token: " + refreshedToken);
}
}
[Service]
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
public class CCFirebaseMessagingService : FirebaseMessagingService
{
public override void OnMessageReceived(RemoteMessage message)
{
Log.Debug(TAG, "Hi Mum!");
}
}
这两个事件都可以在调试器中打破。
在清单......
<application android:label="My app">
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
</application>
答案 0 :(得分:0)
这是Firebase的设计。
通知会显示应用是否在后台,但如果可见,则会显示。实际收到基础推送消息,并显示通知由Firebase库处理。
这与旧的Google云消息传递不同,后者始终向应用提供前景或后台。
(社区维基回答基于长线程中的评论。请编辑以添加更多详细信息。)