我正在尝试使用谷歌的C2DM服务注册一个安卓设备,但是当我在手机上安装应用程序时,我在logcat中得到了以下信息:
W/DefaultRequestDirector( 1210):身份验证错误:无法响应以下任何挑战:{} D/C2DM注册器( 1210):C2DMRegistrar.30注册器: http错误401E/C2DM注册器( 1210):C2DMReg handleRequest捕获org.apache.http.auth.AuthenticationException
我还将我发送给Google的内容打印到logcat。它明确地跟在后面,只去掉了电子邮件地址。这个电子邮件地址就是我在谷歌注册成为推送通知发送者的地址。
意向附加:捆绑包{sender=me@myemail.com,app=PendingIntent{4471c300: android.os.BinderProxy@44762840}}
ComponentName对象( startService调用的结果):ComponentInfo{com.google.android.gsf/com.google.android.gsf.gtalkservice.PushMessagingRegistrar}
要澄清的是,这不是向设备发送实际消息的问题-我还没有走到那一步。此问题与注册设备有关。
任何帮助都将不胜感激。
发布于 2012-06-22 04:41:36
有几件事你需要确保你已经完成注册: 1.使用谷歌电子邮件帐户在Android C2DM网站上注册2.使用该帐户将注册意向发送到谷歌服务器。您的注册意图应如下所示:
public void registerApp() {
Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER");
intent.putExtra("app",
PendingIntent.getBroadcast(this, 0, new Intent(), 0));
intent.putExtra("sender", "youraccont@gmail.com");
ComponentName result = startService(intent);
Log.d("Intent", "" + result);
}还要确保在您的清单中声明这一点
如果您使用的电子邮件帐户不是由谷歌管理的,这也可能是导致问题的原因。您只需注册一个新的gmail帐户,即可用于您的c2dm推送通知。
希望这能有所帮助
https://stackoverflow.com/questions/10132999
复制相似问题