模拟android GCM

时间:2015-01-06 14:07:26

标签: android google-cloud-messaging

我是Android开发的新手,并且正在尝试添加推送通知服务器和客户端(APK)。

我通过网络阅读的内容,我需要使用console.developers.google注册一个项目,然后获取一些ID以允许发送或接收推​​送通知。但是,我要做的是模拟本地计算机上的完整环境并进行测试。这可以实现吗?

例如,注册推送服务并在localhost和我的应用程序(WIP)上发送通知以再次接收和推送消息到服务 - 假设localhost机器未连接到互联网。

2 个答案:

答案 0 :(得分:2)

由于推送通知如何使用Google服务器,因此无法实现。

推送通知将发送到谷歌服务器,并从那里分发到设备。然后由操作系统选择它们,并将其提供给任何将响应意图的应用程序。因此无法在本地执行此操作。

有关详细信息,请参阅文档here

修改

根据您写的评论,这是一种非常酷的解决方法,我发现我可以发送通知:

adb shell am broadcast -a com.google.android.c2dm.intent.RECEIVE com.myapp

你和我之间的区别在于我没有使用-c作为设置类别。 您可以通过

查看所有可能的选项
adb shell

然后输入

am broadcast

假设您只插入了一个设备。(请注意,您没有订阅通知,您必须将该通知发送到应用程序。然后应用程序被编程为通过com.google.android操作响应任何意图.c2dm.intent.RECEIVE。

这有帮助吗?

答案 1 :(得分:1)

您可以使用ADB模拟Android设备的推送通知。

  1. 首先安装adb。
  2.   

    sudo apt-get install adb

    1. 从manifest.xml中删除SEND权限。
    2.   

      机器人:权限=" com.google.android.c2dm.permission.SEND" >

      1. 从shell推送通知的命令
      2.   

        adb shell am broadcast -c com.myapp -a   com.google.android.c2dm.intent.RECEIVE -e data" SomeData"

        1. 更改包名称(com.myapp)和" SomeData"如你所愿。