1

「はじめに」ページで説明されているようにアプリにGCMを実装し、実装を容易にするためにgcm.jarおよびgcm-server.jarヘルパーライブラリを使用しました。

しかし、私はGCMで何かを誤解したと思います。私が望むことを達成できなかったからです。

registerIdだけでなく別のキー情報でデバイスを登録したい。たとえば、これは天気予報アプリケーションであり、ユーザーは1つ以上の都市に関する通知を受け取りたい場合があります。これを実現するには、サーバーは他のソースから天気情報を取得し、関連する都市で変更があった場合に登録済みのデバイスにプッシュバックするための都市名または郵便番号を必要とします。

ユーザーが特定の何か(たとえば都市)に関する通知を受け取るように言ったときにデバイスを登録します。

ただしGCMRegistrar.register、メソッドは2つの引数のみを取ります。1つはコンテキスト用で、もう1つはsenderID用です。

追加のパラメータをアプリケーションサーバーに送信するにはどうすればよいですか?

編集:GCMIntentServiceとonRegisteredメソッドを実装しました。サーバーを直接呼び出すことで、ここから追加情報を送信できます。しかし、onRegisteredメソッドが呼び出されると、追加情報が失われます。

4

1 に答える 1

2

独自のコードを実装してアプリ サーバーに情報を送信することを妨げるものは何もありません。私は自分のアプリでそれを行いました。作成した GCMIntentService クラスで、コードを挿入して

protected void onRegistered(Context context,String regId)

方法。Google の GCM ライブラリは、C2DM の場合とは異なり、サードパーティのアプリ サーバー登録を実際には行っていないことに気付くでしょう。必要に応じて、Google アプリ エンジンを使用することもできます。

于 2012-07-05T11:53:31.083 に答える