1

我正在尝试从开发者 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("");
    }
}
4

1 回答 1

0

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

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

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

于 2013-08-31T11:10:13.923 回答