我正在尝试通过 StackMob 在现有的 Android 应用程序上实现推送通知。我已经浏览了他们的教程和开发中心,试图找到解决我的问题的方法,但我做不到。在我的应用程序的 BaseActivity 中,我有我的发件人 ID(由于显而易见的原因,实际 ID 替换为 #):
public static String SENDER_ID = "############";
来自 Google API 控制台。我也有 init 函数(同样,在这段代码中替换了 PUBLIC 和 PRIVATE 键):
StackMobAndroid.init(this.getApplicationContext(), StackMob.OAuthVersion.One, 0, "<PUBLIC KEY FROM STACKMOB DASHBOARD>", "<PRIVATE KEY FROM STACKMOB DASHBOARD>");
据我了解,我还需要注册任何设备以接收通知,它位于 init 下方:
try {
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
registerForPush();
} else {
Log.e("BaseActivity", "User already registered for push notifications");
}
} catch (UnsupportedOperationException e) {
Log.e("BaseActivity", "This device doesn't support gcm. Push will not work");
}
private void registerForPush() {
GCMRegistrar.register(this, SENDER_ID);
}
当我运行我的应用程序时,我进入Registering app com.example.android of senders ############
了 LogCat,因此我的设备已注册以获取推送通知。但是当我尝试从 StackMob 仪表板发送推送通知并检查来自该推送的日志时,我看到
Failed to send message {"alert":"deadbeef"} because there is no C2DM ClientLogin token for version=0
有人可以解释该日志消息实际上告诉我什么吗?