我克隆了quickstart messaging app,当应用程序从后台删除时,它会收到通知。这样做的步骤:
现在,当我创建另一个项目并执行与快速启动消息传递应用程序完全相同的操作时,当应用程序从最近的应用程序托盘中删除时,通知将无法传递。在日志中我一直看到错误。
W GCM : broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10000000 pkg=com.example.hello (has extras) }
我的应用程序中的所有内容都与包之外的快速启动消息应用程序相同。 这是什么巫术? :d
发送有效负载
{
"to": "asdasd....",
"priority": "high",
"notifications": {
"body": "Test body",
"title": "Test title"
},
"data": {
"key1": "value1",
"key2": "value2"
}
}
我正在使用php脚本发送此内容。使用fcm控制台发送有效负载(没有'data'对象)时会发现相同的行为。
我做了一个adb shell dumpsys包grep为fcm quickstart和我的项目停了下来。
对于快速入门应用:
User 0: ceDataInode=7733 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false
User 999: ceDataInode=0 installed=false hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false
对于我的应用:
User 0: ceDataInode=25321 installed=true hidden=false suspended=false stopped=false notLaunched=false enabled=0 instant=false
User 999: ceDataInode=0 installed=false hidden=false suspended=false stopped=true notLaunched=true enabled=0 instant=false
我认为2个用户是管理员,另一个是访客用户。我检查了设置,它确实提供了这样的选项。
对于我的应用,用户999的停止状态为true,即使未安装该应用也是如此。但是,对于快速入门应用,状态为false。不确定为什么会发生这种情况以及这是否会导致问题。