pom*_*ber 8 android push-notification google-cloud-messaging
我使用GCM的应用程序有问题,方案是这样的:
在第5步中,我需要获取以前的注册ID,以便我可以更新我的模型.
限制:
- 我试图在不使用外部存储的情况下执行此操作
- 我无法在服务器发送消息时更新模型,应该在注册后完成,因为在应用程序中为每个新设备创建了新的配置文件
我知道此信息在Google服务器中,因为当您向旧注册ID发送邮件时,它会发送给您.例如,如果我向"RID-1"发送消息,则在响应中我得到新的(规范)注册ID为"RID-2".我需要的是一种在不发送消息的情况下获取此信息的方法.
如果您需要更多背景,请告诉我.
我发现了几个相关的问题,但答案不适用于这种情况:
GCM
gcm规范ID的注册ID重复应该更新或者不是
gcm注册ID的持久性
Google Cloud Messaging - 注册ID状态
Android GCM:如何检测注册的规范ID在我自己的服务器?
处理Android上的Google Cloud Messaging中的注册ID更改
(均由@eran回答)
小智 5
您可以在请求中指定"dry_run": true选项/send.
我发现设备没有收到带"dry_run": true选项的推送通知,而服务器得到canonical_ids响应.
这是Ruby中的示例代码.您可能需要gcm事先安装Gem.
$ gem install gcm
ask_canonical_ids.rb
require 'gcm'
require 'json'
API_KEY = "YourApiKey"
gcm = GCM.new(API_KEY)
registration_ids = [
'OldRegistrationId',
]
option = { data: { 'message' => 'Hello Gcm!' }, dry_run: true }
response = gcm.send_notification(registration_ids, option)
p response[:canonical_ids]
Run Code Online (Sandbox Code Playgroud)
输出$ ruby ask_canonical_ids.rb(格式化)
[{
:old => "OldRegistrationId",
:new => "NewRegistrationId"
}]
Run Code Online (Sandbox Code Playgroud)
同样,您的设备不会收到任何推送通知.
| 归档时间: |
|
| 查看次数: |
2871 次 |
| 最近记录: |