gpt4 book ai didi

android - 如何模拟从 Google Cloud Messaging 发送的消息?

转载 作者:可可西里 更新时间:2023-10-31 22:04:33 26 4
gpt4 key购买 nike

我正在使用 Google Cloud Messaging API 向 Android 设备发送推送通知。我已经实现了 IntentService 和相应的逻辑来处理来自 GCM 服务器的通知。问题是 GCM 有时需要长达 15 分钟的时间来发送消息,这给调试带来了巨大的痛苦。

我搜索了如何模拟 GCM,但没有找到适用于我的情况的任何解决方案。 我已经实现了第三方客户端服务器;问题是等待 GCM 实际将消息发送到 Android 设备。

Android 设备上的入口点是 IntentService,它有一个 Hook 方法 handleIntent(Intent)。似乎一种可能性是编写另一个向系统发送“欺骗” Intent 的程序,这样系统就会加载我的 IntentService Intent ,其行为、外观和感觉都像真实的 GCM Intent .这样,我的应用程序就可以即时接收消息。

有没有人遇到过这个问题,或者对如何解决有什么建议?

最佳答案

如果你想模拟一些东西但你不知道如何做到这一点,请使用以下方法。

  1. 使用您需要模拟的依赖项(intentservice)制作一个适配器类(CAdpapter)。
  2. 制作一些调用依赖项的公共(public)方法。
  3. 创建一个接口(interface)(IAdapater),并确保适配器类实现此接口(interface)(只需将您在步骤 2 中创建的方法放在此接口(interface)中)。
  4. 确保需要与依赖项对话的类(如 intentservice 所述)不直接执行此操作,它们与 IAdapter 的实例对话。
  5. 编写一个实现 IAdapter (MockAdapter) 的模拟类。如果您不喜欢这样,请使用模拟框架。

类现在可以使用适配器与 intentservice 对话,或者改为与 Mock 对话。一种解决方案是创建自己的类来与您需要模拟的依赖项进行对话。

模拟可能很难。 Mock 需要实现与普通类相同的接口(interface)。但是,如果此类具有巨大的接口(interface)或根本没有接口(interface),则可能会出现问题(这些只是示例)。编写自己的类来调用您需要模拟的类可能是一种解决方案

关于android - 如何模拟从 Google Cloud Messaging 发送的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29663232/

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