如何使用GCM API定位我的xmpp服务器

时间:2013-08-31 08:20:06

标签: android push-notification google-cloud-messaging

我试图从开发者android网站了解GCM。我按照http://developer.android.com/google/gcm/client.html的说明实现了客户端android应用程序。我使用的代码是从他们提到的https://code.google.com/p/gcm/下载的。 GCM注册功能在我的手机上完美运行。

现在的问题是,在Android应用程序代码中没有位置,我看到一个地方提到我的基于xmpp的应用程序服务器名称。所以,如果我没有提到我的服务器名称,将如何消息转到我的服务器?我很困惑我的应用程序将如何与我的服务器进行交互。将消息从Android应用程序发送到服务器的确切代码是:

// Send an upstream message.
public void onClick(final View view) {

    if (view == findViewById(R.id.send)) {
        new AsyncTask<Void, Void, String>() {
            @Override
            protected String doInBackground(Void... params) {
                String msg = "";
                try {
                    Bundle data = new Bundle();
                    data.putString("my_message", "Hello World");
                    data.putString("my_action", "com.google.android.gcm.demo.app.ECHO_NOW");
                    String id = Integer.toString(msgId.incrementAndGet());
                    gcm.send(SENDER_ID + "@gcm.googleapis.com", id, data);
                    msg = "Sent message";
                } catch (IOException ex) {
                    msg = "Error :" + ex.getMessage();
                }
                return msg;
            }

            @Override
            protected void onPostExecute(String msg) {
                mDisplay.append(msg + "\n");
            }
        }.execute(null, null, null);
    } else if (view == findViewById(R.id.clear)) {
        mDisplay.setText("");
    }
}

1 个答案:

答案 0 :(得分:0)

当您将设备从应用程序发送到服务器的云消息时,您可以使用以下呼叫:

gcm.send(SENDER_ID + "@gcm.googleapis.com", id, data);

GCM CCS服务器通过SENDER_ID识别您的服务器(因为您的服务器在与GCM CCS服务器建立XMPP连接时使用该SENDER_ID)。