android中的GCM还有什么

android中的GCM还有什么,android,google-cloud-messaging,Android,Google Cloud Messaging,我想在我的应用程序中实现谷歌云消息。我有一个类gcminentservice,我将权限添加到清单,并将此代码添加到主活动: checkNotNull(SENDER_ID, "SENDER_ID"); GCMRegistrar.checkDevice(this); GCMRegistrar.checkManifest(this); requestWindowFeature(Window.FEATURE_ACTION_BAR); setContentView(R.layout.activity_m

我想在我的应用程序中实现谷歌云消息。我有一个类gcminentservice,我将权限添加到清单,并将此代码添加到主活动:

checkNotNull(SENDER_ID, "SENDER_ID");
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);

requestWindowFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.activity_main);
extras = getIntent().getExtras();

if (savedInstanceState == null) {

    if (extras == null) {

        GlobalConfig.setAPPLICATION_ID(APP_ID);

    } else {

        GlobalConfig.setAPPLICATION_ID(extras.getInt("application_id", 0));
    }

} else {

    MY_DEBUG.print("SavedInstanceState is not null");

}

GlobalConfig.setBookmark(0);

//notifications
final String regId = GCMRegistrar.getRegistrationId(this);
Log.i(TAG, "registration id  " + regId);

if (regId.equals("")) {


    GCMRegistrar.register(this, SENDER_ID);

} else {

    Log.v(TAG, "Already registered");

}

我得到了RegId,但我还需要什么才能从谷歌获得消息呢?我与webservice连接。我需要把这个注册表送去服务吗?我的下一步是什么?

下面是一幅图,描述了通过GCM服务器将消息从服务器(您的Web服务)发送到设备的所有步骤

步骤1和2已经完成(如果我理解您所说的),因为您检索了注册ID

因此,您必须按照以下步骤获得通知


希望这对你有帮助

我写了一篇博客文章,描述了GCM的工作原理以及您的服务器在此过程中的作用:在本文中,您可以简单地用您的服务器替换Airtop服务器

下一步是将注册ID发送到将处理设备注册的服务器。这将是您的服务器或第三方服务器,如或

您可能应该看看本教程和GCM体系结构概述,以及

从谷歌文档:

这是在移动设备上运行的Android应用程序注册接收消息时发生的事件序列:

(1) Android应用程序第一次需要使用消息服务时,会向GCM服务器发出注册意向

此注册意图(com.google.android.c2dm.Intent.REGISTER)包括发件人ID和android应用程序ID

注意:由于在应用程序第一次运行时没有调用生命周期方法,因此应该在onCreate()上发送注册意图,但仅当应用程序尚未注册时

(2) 如果注册成功,GCM服务器将广播com.google.android.c2dm.intent.registration intent,这将为android应用程序提供注册ID

Android应用程序应该存储此ID以供以后使用(例如,如果已经注册,则检查onCreate()。请注意,Google可能会定期刷新注册ID,因此您在设计Android应用程序时应了解com.Google.Android.c2dm.intent.registration intent可能会被多次调用。您的Android应用程序需要能够做出相应的响应

(3) 为了完成注册,Android应用程序将注册ID发送到应用程序服务器。应用服务器通常将注册ID存储在数据库中

注册ID将持续到Android应用程序显式注销自身,或者直到Google刷新您的Android应用程序的注册ID

你在上面列表的第三步。通过查看类中的register()方法,可以看到gcm演示客户端如何执行步骤三