我一直在努力让Google Cloud Messaging创建推送通知。我可以注册设备,将注册ID存储在服务器上,然后将推送消息发送回设备。
我能够完成所有这些并且catLog显示推送消息到达设备。但是在设备上没有出现推送通知消息。
这可能是什么原因?
以防万一,这是我注册设备的方式:
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals(""))
{
// Automatically registers application on startup.
GCMRegistrar.register(getApplicationContext(), SENDER_ID);
}
else
{
// Device is already registered on GCM, check server.
if (GCMRegistrar.isRegisteredOnServer(getApplicationContext()))
{
// Not sure what to do here :)
}
else
{
if ( user_id != null )
{
GCMRegistrar.register(this, SENDER_ID); // google register
setRegistrationId ( user_id , regId ); // saves id on server
}
}
}
在onPostExecute上结束我做了GCMRegistrar.setRegisteredOnServer(getApplicationContext(),true);
这是我的GCMIntentService
中的onMessage()方法 @Override
protected void onMessage(Context ctxt, Intent message) {
Bundle extras=message.getExtras();
for (String key : extras.keySet()) {
Log.d(getClass().getSimpleName(),
String.format("onMessage: %s=%s", key,
extras.getString(key)));
}
}
问题可能是这个吗?它究竟应该如何?
谢谢!
答案 0 :(得分:2)
这可能是什么原因?
以下是一些可能性:
您的应用中没有GCMIntentService
个子类。
你这样做,但它没有在清单中注册。
你这样做,但你没有覆盖onMessage()
您做到了,但您的onMessage()
未正确记录事件或以其他方式告知您事件已发生。