请原谅我不知道 正确的 Android 术语。我有 iOS 背景,所以我想学习如何在 Android 世界中正确地做两件事。
- 控制 Android 的“徽章”
- 通过
分发
(生产)与开发
发送“推送通知”。
幸运的是,我找到了 #1 的答案,即使用 Status Bar Notifications
感谢 this question .
现在是#2。我已经设置了 GCM 并且可以向所有已注册的设备发送通知。但是,有时我希望能够向所有用户的手机发送通知,有时只向“开发”设备发送通知。对于 iOS,这是通过从 App Store/Ad-Hoc 环境(Distribution
)下载的设备和物理插入计算机的设备( >开发
)。 Android 有类似的东西吗?
最佳答案
Google Cloud Messaging 中的开发和分发没有区别。所有消息都从您的服务器发送到同一个 GCM 端点。 如果你想区分开发设备和非开发设备,你必须在服务器的数据库上管理它(对于你存储在服务器中的每个注册 ID,添加一个标志,说明它是否是开发设备)。
编辑:
实际上,您还可以做一些其他事情,但我不确定这是不是个好主意。当应用程序注册到 GCM 时,它会提供一个 sender ID
(这是一个 Google API project ID
)。您可以使用两个不同的 project IDs
用于开发发布和生产发布。 registration IDs
注册过程返回的与 project ID
相关联.现在,当您从服务器发送 GCM 消息时,您使用 API key
发送它与 project ID
相关联.如果您使用 API key
与您的发展息息相关project ID
, 只有 registration IDs
与project ID
相关联(即它们源自具有开发版本的设备)将起作用。使用“生产”发送消息 registration IDs
将导致 MismatchSenderId
错误(类似于 APNS,沙盒设备 token 在生产环境中无效,反之亦然)。我不确定这是个好主意,因为您不想依赖 Google 的错误来判断您的逻辑。如果您只想向一部分客户发送消息,则应在您的数据库中管理该子集。
关于Android 消息 - 开发与分发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16717864/