GoogleCloudMessage推送的使用二(正式使用走起)

上一期记录了申请过程,就这个申请过程很恶心啊,卡了我好久。两个Key傻傻分不清楚,导致最后推送一直失败失败失败。

让我们继续,ADT升级最新版后,打开SDK Manager,下载下面这些,有些人会在Extra下面直接有那个Google Cloud message,我是死活没有,后来好像就是这么折腾上的。

GoogleCloudMessage推送的使用二(正式使用走起)_第1张图片


安装完以后就会在自己的sdk的路径的extra下面有gcm的项目,到这里去copy那个gcm.jar到你自己的工程里面并且引用。

GoogleCloudMessage推送的使用二(正式使用走起)_第2张图片


————————————----------------------------------——分割线—————————-————————


下面就是代码部分

首先是AndroidManifest.xml的编写,添加权限如下:

    

    
    
    
    
    
    
    
    
    
其次是添加一个receive和一个service

     android:name="com.google.android.gcm.GCMBroadcastReceiver” 
     android:permission="com.google.android.c2dm.permission.SEND" >  
    
      
      
      
    
  
  


 
  

接下来如果你不需要重写BroadCast和Service就直接去copy那个gcm文件夹下面的samples里面的gcm-demo-client工程中CommonUtilities.java,GCMIntentService.java,ServerUtilities.java,这三个文件到你的工程,然后把CommonUtili那个文件中的SERVER_URL和Sender_ID为你自己的信息,URl是你自己搭建的服务器的地址,下一章记录服务器的搭建,Sender_ID是你之前那个ProjectNumber.

最后一步就是写一个MainActivity去调用注册了

protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		GCMRegistrar.checkDevice(this);
		GCMRegistrar.checkManifest(this);
		registerReceiver(mHandleMessageReceiver,new IntentFilter(CommonUtilities.DISPLAY_MESSAGE_ACTION));
		final String regId = GCMRegistrar.getRegistrationId(this);
		if (regId.equals("")) {
			GCMRegistrar.register(this, SENDER_ID);
		} else {
			if (GCMRegistrar.isRegisteredOnServer(this)) {
				System.out.println("监听服务已经被唤醒,当前rID为:->"+regId);
			}else {
				new Thread(new Runnable() {

					@Override
					public void run() {
						boolean registered = ServerUtilities.register(MainActivity.this, regId);
					}
				}).start();
			}
				

		}

	}

	public void start_google_service(View view) {
		GCMRegistrar.unregister(this);
	}
	
    private final BroadcastReceiver mHandleMessageReceiver =
            new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String newMessage = intent.getExtras().getString("message");
            System.out.println("从服务器传过来的消息:"+newMessage);
        }
    };

这样就可以了。希望对大家有帮助。。

你可能感兴趣的:(GCM推送小记)