gpt4 book ai didi

android - GCM/FCM : not receiving events, 广播 Intent 回调:result=CANCELLED

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:13:56 26 4
gpt4 key购买 nike

有关于这个错误的讨论,但似乎他们最终都得到了关于(应用程序的)“停止状态”的答案。

我看到了一些不同的东西。

我有两个云推送示例,一个是官方 GCM 示例,另一个是遵循教程的 FCM 项目,它们都受到影响。

两者都安装在带有 6.0.1 的三星 S6 上,设备已插入(无打盹)并连接到 WiFi。

有时,向 GCM 示例或 FCM 应用程序发送推送消息开始失败,并在 logcat 中显示这些消息:

07-17 14:37:38.851 W/GCM-DMM (29459): broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10000000 pkg=gcm.play.android.samples.com.gcmquickstart (has extras) }

07-17 14:38:25.231 W/GCM-DMM (29459): broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10000000 pkg=firebasetest.example.kman.firebasetest (has extras) }

启动任一应用程序的 UI 将使推送消息再次通过(到该应用程序),但不会重新传送旧消息(产生错误)。

现在 - 我没有强行停止任何一个应用程序。我大概 15 分钟前用过其中一个。设备没有进入休眠状态(它的屏幕一直亮着,而且一直插着电源)。

所以“强制停止”的解释在这里不适用,Doze Mode 在这里不适用。

此外,说到“强制停止”,我做了几次测试,运行然后故意关闭“最近的应用程序列表”中的任何一个(GCM 或 FCM)应用程序,验证该进程是否被终止(通过 logcat)然后(GCM 或 FCM)推送消息都可以顺利通过。

所以它必须是其他东西(不是“强制停止”或打瞌睡模式),而这个其他东西导致推送消息变得不可靠,这违背了目的。

关于如何追踪此问题以防止/避免推送消息传递突然中断的任何想法?

GCM 示例的 list :

https://github.com/googlesamples/google-services/blob/master/android/gcm/app/src/main/AndroidManifest.xml

FCM 测试的 list :

```xml

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<service android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>


<service android:name=".MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
</application>

```

最佳答案

我的结论是:

这是由 Android Studio 引起的。

当您完成当天的项目并退出 AS 时,它会询问是否应终止应用程序(正在调试)。

无论您在此处选择什么,AS 始终会终止应用程序并将其置于“已停止”状态——不仅是 GCM,警报也会停止触发。

我看到这种情况一直在发生,我养成了自己重启应用程序并在那里做一些事情的习惯,这样它就不会说“停止”,也不会在第二天让我感到惊讶(“发生了什么”)。

我以为我已经为此提交了一个错误,但现在找不到了。如果有人感兴趣,请随意...

关于android - GCM/FCM : not receiving events, 广播 Intent 回调:result=CANCELLED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38420928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com