我试图从开发者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("");
}
}
答案 0 :(得分:0)
当您将设备从应用程序发送到服务器的云消息时,您可以使用以下呼叫:
gcm.send(SENDER_ID + "@gcm.googleapis.com", id, data);
GCM CCS服务器通过SENDER_ID识别您的服务器(因为您的服务器在与GCM CCS服务器建立XMPP连接时使用该SENDER_ID)。