【问题标题】:Use of C2D_MESSAGE permission in Google Cloud Messaging在 Google Cloud Messaging 中使用 C2D_MESSAGE 权限
【发布时间】:2017-04-21 17:57:29
【问题描述】:

我试图了解 GCM 应用程序如何使用 C2D_MESSAGE 权限。我的猜测是 GCM 服务客户端应用程序将通过 sendBroadcast(Intent intent, String receiverPermission) API 方法向订阅者应用程序发送广播,其中接收者权限将设置为订阅者应用程序定义的 C2D_MESSAGE 权限。但是,我无法在 Google Play Store 应用程序(我相信它是 GCM 服务客户端应用程序?)本身中找到它。我看错地方了吗?还是以不同的方式完成的?感谢所有帮助。谢谢!

【问题讨论】:

    标签: android google-cloud-messaging


    【解决方案1】:

    从技术上讲,消息从 GCM 服务器发送给订阅者(即 GCM 客户端)(应用到应用 GCM 仍然通过服务器路由)。

    当订阅设备(或客户端)收到消息时,消息会查找该特定权限。通过将 C2D_MESSAGE 附加到包名称的末尾来构造权限。完整权限(带有包名)让消息知道这个应用程序正在等待它。这是为了防止其他应用收到此消息。

    如果您是 GCM 新手,我建议您使用 Firebase,因为旧的 GCM 已被弃用,取而代之的是 Firebase。

    【讨论】:

    • 那么是哪个应用向订阅者应用发送广播消息?你能指出我在 GCM 服务应用程序代码中的哪个位置(无论是谁)这是完成的吗?
    • Google 托管的 GCM 服务器将消息发送到您的设备。要接收消息,您首先要在服务器上注册您的设备,对吗?该服务器将消息发布到 GCM 服务器,然后将其发送到设备。
    • GCM 服务器代码归 Google(他们的专有材料)所有。它不发送广播,而是知道特定设备和应发送到的应用程序的包名称(它在您注册应用程序时知道包名称)。设备反过来将其作为广播在内部发送
    • 我要求的是服务应用程序代码(在设备上运行的代码),而不是服务器代码本身。因此,我对“设备依次在内部将其作为广播发送”的确切位置感兴趣。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多