開発者の 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("");
}
}