GCM CCS 上游消息是否会强制重新连接到 GCM 网络?

2023-11-29

我遇到了一些问题,GCM 推送通知无法在 Android 设备上正确到达。经过几天的研究,我发现 Android 设备使用心跳来保持与 GCM 服务的连接。遗憾的是,心跳似乎太高,因此 Android 设备可能(但并非总是)失去与 GCM 服务的连接(例如,当从 WLAN 切换到 3G 时)。

关于这个问题已经有很多讨论了Google 的产品论坛,但除了使用像 parse.com 这样的第三方推送服务之外,似乎不存在真正的解决方案

现在,Google 发布了 GCM 云连接服务器,它使 Android 设备上的应用程序能够通过 GCM 将上游消息发送到第三方应用程序服务器。

有谁知道当连接不可用时,使用上游消息是否会强制重新连接到 GCM 网络?


我对此进行了测试,似乎并非如此。但是您可以通过发送以下广播意图强制 Android 发送定期通知心跳:

com.google.android.intent.action.MCS_HEARTBEAT
com.google.android.intent.action.GTALK_HEARTBEAT

我从 Google Play 上的 Push Notification Fixer 应用程序中获得此信息(我不是开发人员)。https://play.google.com/store/apps/details?id=com.andqlimax.pushfixer.noroot

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GCM CCS 上游消息是否会强制重新连接到 GCM 网络? 的相关文章

  • 如何清除所有WebView存储的信息?

    我有一个 Android 浏览器 我可以选择清除缓存 存储 cookie 等 代码如下所示 webView clearCache true webView clearFormData webView clearHistory webView
  • Android Studio 3.0 Canary 9 - 无法解析包

    我在 Android Studio 3 0 Canary 9 中遇到几个错误 这些错误是 无法解析 android 软件包 下面列出了一些错误 我刚刚安装了 SDK 的所有额外软件包 但仍然收到 gradle 构建错误 Error 82 1
  • 在 Android Studio 中,为什么我必须在模拟器中单击“运行应用程序”两次才能启动应用程序?

    在 Android Studio 中 当我按播放按钮在 Android 模拟器上安装并运行应用程序时 大约 5 10 秒后 我在屏幕底部收到一条消息 显示 安装成功 但应用程序实际上并未运行在模拟器上 我必须再次按下播放按钮 这是非常令人沮
  • Android 30+ 中的视频捕获意图 - 只有所有者才能与待处理项目交互

    我正在尝试在我的应用程序上捕获视频 它可以在 android API 30 以下运行 但不能在 30 以上运行 似乎在 sdk 30 之后 android 不允许完全读取外部存储 作用域存储 我目前遇到这个错误 java lang Ille
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • 是否可以将数组或对象添加到 Android 上的 SharedPreferences

    我有一个ArrayList具有名称和图标指针的对象 我想将其保存在SharedPreferences 我能怎么做 注意 我不想使用数据库 无论 API 级别如何 请检查SharedPreferences 中的字符串数组和对象数组 http
  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 是否必须删除 Intent extra?

    这可能是一个愚蠢的问题 但是是否有一条规则规定消费活动必须显式删除 Intent 额外内容 或者只有在回收 Intent 对象时才如此 换句话说 如果我总是通过执行以下操作来链接到下一个活动 Intent i new Intent MyCu
  • 如何使用 Cordova 获取当前安装的应用程序的版本?

    我已经找到了应用程序可用性插件 https github com ohh2ahh AppAvailability它主要检查用户是否在其设备上安装了某个应用程序 是否有可能获得应用程序的当前版本 开发者名称 重要 以及所有可能的信息 一般来说
  • 是否有 ADB 命令来检查媒体是否正在播放

    我想使用 ADB 命令检查根植于终端的外部设备中是否正在播放音频 视频 我无法找到任何 ADB 命令 如果有 我尝试过 adb shell dumpsys media player 我想要一个命令来指定视频是否正在运行 您可以使用以下命令查
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • 在gradle插件中获取应用程序变体的包名称

    我正在构建一个 gradle 插件 为每个应用程序变体添加一个新任务 此新任务需要应用程序变体的包名称 这是我当前的代码 它停止使用最新版本的 android gradle 插件 private String getPackageName
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591

随机推荐

  • Spring Batch:如何重新启动并仅重新运行跳过的项目

    更正文件中的错误后 我可以重新启动作业并仅处理跳过的项目吗 我正在阅读文档 目前没有发现这种可能性 如果作业失败 您可以重新启动作业 但我正在考虑在完成一些跳过的项目后重新启动作业 如果通过配置无法实现这一点 我自己实现它的好方法是什么 在
  • 禁用浏览器的后退按钮

    如何禁用浏览器的后退按钮 跨浏览器 不要禁用预期的浏览器行为 让您的页面能够处理用户返回一两页的可能性 不要试图削弱他们的软件
  • Chrome:获取 iFrame 并插入正文

    我有以下代码 在 Firefox 中运行良好 if iFrame iFrame outerDoc getElementById dialog iframe var iFrameDoc iFrame contentWindow documen
  • 如何使用带有签名 url 的 gcs-resumable-upload

    我希望能够使用 Node js 客户端应用程序对 Google Cloud Storage 进行可恢复上传gcs 可续传上传包 连 同签名网址 因为客户端应用程序是由未经身份验证的用户调用的 我的服务器通过调用生成签名网址获取签名网址 wi
  • 简单的页面重定向?

    我有一个页面位于http site com services 我只想将其重定向到http site com services first service 执行此操作的最佳重定向是什么 我该如何执行此操作 PHP header Locatio
  • delphi中的sha1校验和

    我用delphi编写了以下代码 with TIdHashMessageDigest5 Create do begin st2 Position 0 Digest HashValue st2 SetLength Hash 16 Move Di
  • 如何为python 2.7安装tensorflow?

    我使用conda在windows 10环境中安装了python 2 7 根据tensorflow的文档 它只支持版本3及以上 有没有办法在保留 python 2 7 版本的同时安装tensorflow TensorFlow 在 Window
  • AndroidrelativeLayout fill_parent 在具有不同行高的 ListView 中出现意外行为

    我目前正在对项目进行一个小更新 并且在列表视图中遇到相对布局和填充父级的问题 我试图在每行的两个部分之间插入一个分隔符 就像默认拨号器的呼叫日志中的分隔符一样 我查看了 Android 源代码以了解他们是如何做到的 但在复制他们的解决方案时
  • 谷歌地图以及当不包含该 php 页面时如何将变量从 php 页面传递到另一个页面

    我正在研究这个例子 将 PHP MySQL 与 Google 地图结合使用 https developers google com maps articles phpsqlajax v3 我知道这个教程之前已经介绍过很多了 但我找不到我正在
  • python 只将第一个字母大写

    我知道 capitalize 将字符串的第一个字母大写 但是如果第一个字符是整数怎么办 this 1bob 5sandy to this 1Bob 5Sandy 只是因为没有其他人提到过 gt gt gt bob title Bob gt
  • Woocommerce 只读账单字段

    我有一些电子商务网站 其中客户帐单地址是在后端预定义的 我需要将 帐单地址 字段设置为 只读 以避免客户替换那里的信息 但我不知道如何 在哪里做到这一点 是否可以 将以下代码放入主题的 function php 文件中 add action
  • TCPClient 异常的新实例[重复]

    这个问题在这里已经有答案了 几天前我问过类似的问题 那时 我正在尝试使用套接字 目前 我正在使用 TCPClient 来为我完成脏套接字工作 我使用的是 Windows 7 和 Visual studios 2013 Professiona
  • 将 GSL 与 Xcode 集成

    我正在尝试让 Xcode 5 1 1 找到 GSL 的标头 我理想的解决方案是允许我在未来的所有项目中访问这些标头 而无需额外的工作 如果愿意 可以自动访问 大多数说明似乎都说在项目的 构建设置 gt 搜索路径 部分下添加库路径 但是 我的
  • 在纱线集群上运行时,Spark Hive 报告 pyspark.sql.utils.AnalysisException: u'Table not found: XXX'

    我正在尝试在 Cloud 4 2 Enterprise 上的 BigInsights 上运行 pyspark 脚本来访问 Hive 表 首先我创建配置单元表 biadmin bi4c xxxxx mastermanager hive hiv
  • PHP 上的 AES256 字符串加密和 iPhone 上的解密

    我的 php 代码中有这个 iv size mcrypt get iv size MCRYPT RIJNDAEL 256 MCRYPT MODE ECB iv mcrypt create iv iv size MCRYPT RAND key
  • 如何从android中的本地电话簿获取联系人

    我想在列表中显示所有本机联系人 并让用户将列表中的联系人 多个联系人 添加到我的应用程序数据库中 如何做到这一点 任何人都可以给我想法或分享一些代码 提前致谢 我在 Android 2 1 上使用了这段代码 它会拉下任何拥有电话号码 由 S
  • 如何轻松迭代“strings.xml”资源文件中的所有字符串?

    我创建了一个使用 TTS 引擎向用户发送反馈的应用程序 为了提高性能 我使用了synthesizeToFile and addSpeech方法 但要合成的文本字符串位于strings xml文件 因此我必须为 TTS 引擎说出的每个字符串调
  • “django 不支持从方法到十进制的转换”错误

    因此 我正在尝试计算下面提到的参数的咖啡价格 但是 每次我尝试调用 Coffeeprice 方法时 它都会给我一个conversion from method to Decimal is not supported error 我的视图和模
  • 如何从字符串中删除多个换行符

    给定一个字符串 我需要检查是否有多个换行符 n 如果有的话我需要将它们转换为一个换行符 你能给我看一下执行此操作的代码吗 谢谢 try this s s replaceAll r n 2 1
  • GCM CCS 上游消息是否会强制重新连接到 GCM 网络?

    我遇到了一些问题 GCM 推送通知无法在 Android 设备上正确到达 经过几天的研究 我发现 Android 设备使用心跳来保持与 GCM 服务的连接 遗憾的是 心跳似乎太高 因此 Android 设备可能 但并非总是 失去与 GCM