快速提问:
当我的应用根本没有运行(但已安装)时,我能够收到默认的Android Notifications
菜单(当您向下滑动状态栏时出现)的通知。如果是的话 - 我该怎么办?
详细说明:
我已将Firebase通知实施到我的Android应用中。以下是:
的Manifest.xml :
<service
android:name=".utils.FireBase">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
<service
android:name=".utils.FireBaseService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@mipmap/ic_launcher" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@color/colorAccent" />
FireBaseService.java :
public class FireBaseService extends FirebaseMessagingService {
private static final String TAG = FireBaseService.class.getSimpleName();
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "onMessageReceived: " + remoteMessage.getData().get("message"));
}
}
FireBase.java
public class FireBase extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
// I used this token in rest.
Log.e("FirebaseToken", FirebaseInstanceId.getInstance().getToken());
}
}
很好,现在我想发送通知:
curl -X POST --data "$DATA" https://fcm.googleapis.com/fcm/send --header "Content-Type:application/json" --header "Authorization:key=$KEY"
$ DATA :
{
"notification":{
"body": "My notification!"
},
"to": "KEY_FROM:FirebaseInstanceId.getInstance().getToken()"
}
响应:
{
"multicast_id": 7830342176959972827,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
{
"message_id": "0:1485706467606270%8a47512d8a475125"
}
]
}
现在,当我的应用程序正在运行时,我能够接收通知。当我的应用程序进入后台时 - 通知转到Android notifications
。现在我关闭我的应用程序(它既不在前台也不在后台)(我的意思是关闭 - 按SQUARE
硬件按钮 - >向左滑动应用程序,这样我的应用程序就不再在任务管理器中了。我希望从firebase收到Android notifications
菜单的通知。但是,当我打电话给休息服务时,什我不关心布局,所以我只想通知用户。
我尝试使用不同的设备发送通知:
通知根本就没有显示。我观察了控制台,我甚至没有找到关于它们的日志。我阅读了很多stackoverflow帖子,据我所知,我应该能够这样做。
如何归档此目标?如果我无法通过firebase接收通知 - 也许我应该使用GCM代替?
致以最诚挚的问候,
答案 0 :(得分:1)
实际上对此主题进行了积极的讨论,因为这种行为似乎是基于制造商执行的Android操作系统自定义而发生的。
这是Fireit成员在GitHub上的答案之一:first comment,但正如您在此处last comment所见,尚未找到针对Firebase通知的常规解决方案。
如果它不能正常工作(假设你没有在某处犯错),那么不应该是你的错;如果您感到幸运,并且您有一个可以手动启用通知的设备,即使应用程序被杀,您也可以阅读here