谷歌云消息 - 示例服务器

11
我需要一个Google Cloud消息传递的示例应用程序,包括一个示例服务器以测试我的应用程序。有人能帮我吗?
我需要一个示例服务器来测试我已经编写好的代码,但我不知道它是否有效。我不懂服务器端编程,所以有人可以帮我吗?这是我的代码。
意图服务。
package com.example.pushnotificationsample;

import android.content.Context;

public class GCMIntentService extends GCMBaseIntentService {

protected GCMIntentService(String senderId) {
    super(senderId);
    // TODO Auto-generated constructor stub
}

@Override
protected void onError(Context arg0, String arg1) {
    // TODO Auto-generated method stub
}

@Override
protected void onMessage(Context arg0, Intent msgIntent) {
    // TODO Auto-generated method stub
    Log.d("GCM", "RECIEVED A MESSAGE");
  //        String msg=msgIntent.getStringExtra("Message");
    Log.d("GCM", msgIntent.toString());
    // Get the data from intent and send to notificaion bar

}

@Override
protected void onRegistered(Context arg0, String arg1) {
    // TODO Auto-generated method stub
}

@Override
protected void onUnregistered(Context arg0, String arg1) {
    // TODO Auto-generated method stub
}
}
我的主要活动
package com.example.pushnotificationsample;

import android.app.Activity;
import com.google.android.gcm.GCMRegistrar;
import android.os.Bundle;
import android.util.Log;

public class MainActivity  extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    GCMRegistrar.checkDevice(this);
   // GCMRegistrar.checkManifest(this);
    final String regId = GCMRegistrar.getRegistrationId(this);
    if (regId.equals("")) {
      GCMRegistrar.register(this, "555817657362");
      Log.v("Msg", "registered");
    } else {
      Log.v("Msg", "Already registered");
    }
}


}

2
亲爱的,如果您已经从SDK管理器下载了“GCM包”,那么客户端和服务器的示例就在其中。请检查android-sdk/extras/google/GCM目录。 - Paresh Mayani
@PareshMayani 我找不到在SDK管理器中extras文件夹里的内容。 - Khan
快速问题 - 在register方法中,发送者ID(这里是555817657362)是每个设备还是每个应用程序(独立于设备)? - gvaish
1
@MasterGaurav 这是每个应用程序的设置。 - Dinu
4个回答

23
您需要通过Android SDK进行下载。前往窗口 -> Android SDK管理器。向下滚动到“extra”并勾选“Google云消息传递”,然后安装。
完成后,您可以检查 android-sdk/extras/google/gcm/samples 目录下的文件。
或者您也可以尝试下载这个(我上传的):gcm 如果您需要服务器端代码,请参考此答案:https://dev59.com/XGgu5IYBdhLWcg3wj3v5#11253231

6
“curl”命令行工具可用于向在GCM注册的设备发送消息。
curl -X POST \
  -H "Authorization: key= <YOUR_AUTHORIZATION_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
  "registration_ids": [
    "<YOUR_DEVICE_TOKEN>"
  ],
  "data": {
    "message": "<YOUR_MESSAGE>"
  }
}' \
  https://android.googleapis.com/gcm/send

请参考这篇博客文章获取更多细节信息:http://www.zinniakhan.com/2014/07/check-google-cloud-messaging-gcm-client.html

在Stack Overflow上,强烈反对仅提供链接的答案。相反,最好在此处包含答案的基本部分,并提供参考链接。参考链接 - drs
1
对我来说运行得很好,请注意!!!不要在消息中放置任何需要转义的字符,例如“(需要转义)”,因为这会给您带来很多痛苦。"这是我,一些虚拟消息" - cV2

5

4

我在这里找到了一个针对Windows的开源发送客户端:https://gcm.codeplex.com/

  • 设备令牌可以在您实现GCM注册代码并通过您的客户端应用程序检索注册ID之后找到(设置断点或打印语句,以便您能够复制/粘贴此值,它非常长)
  • Auth密钥是在您在Google的开发者控制台中设置项目之后找到的

screenshot


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接