Mil*_*loš 7 android google-cloud-messaging
我想在我的Android应用程序中使用GCM服务.
为此,我使用了http://developer.android.com/guide/google/gcm/gcm.html上的android文档
我创建了客户端注册过程与发件人ID等和服务器端应用程序,我使用注册ID和发件人ID发送邮件.
当我通过Eclipse在我的手机中安装应用程序时,推送通知工作正常,所以发件人ID我是正确的.
然后,当我用Eclipse导出apk文件并将其安装在我的手机中时,我收到SenderId错误的错误消息
MissmatchedSenderId
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么我会得到这个.
我已经阅读了这些主题:
为什么我从GCM服务器端获得"MismatchSenderId"?
使用GCM发送消息时,我不断收到响应'MismatchSenderId'
但在我的情况下奇怪的是,在将应用程序导出为apk之前一切正常,然后我遇到了这个问题.
任何想法都是最好的.
sch*_*tom 10
我实际上遇到了同样的问题,并且正在研究超过10个小时.
我终于找到了问题!与服务器API密钥或浏览器API密钥或SenderID无关.问题是Google文档:
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
GCMRegistrar.register(this, SENDER_ID);
} else {
Log.v(TAG, "Already registered");
}
Run Code Online (Sandbox Code Playgroud)
Google表示你必须调用getRegistrationId函数并且只有当id为空时才调用register!这对我来说根本不起作用......当我这样做时,我总是在发送到这个regId时找回MismatchSenderId.
我的解决方案是:随时打电话
GCMRegistrar.register(this, SENDER_ID);
Run Code Online (Sandbox Code Playgroud)
而当功能
protected void onRegistered( Context c, String regId )
Run Code Online (Sandbox Code Playgroud)
被称为在我的服务器数据库中保存regId.
如果我这样做,一切正常!
| 归档时间: |
|
| 查看次数: |
9661 次 |
| 最近记录: |