1

私が開発した Android C2DM プッシュ アプリには、アプリケーション側のコードで送信者の参照 (例: "sender@gmail.com") があります。ケース 1: このアプリを Android デバイスにインストールすると、デバイスの [アカウントと同期] 設定で "personalid@gmail.com" という gmail ID が表示されます。アプリは C2DM に正常に登録されていますが、プッシュされたメッセージをまったく受信しません。

ケース 2: Android デバイスのアカウントと同期で同じ送信者 ID ("sender@gmail.com") を使用する場合。プッシュしたすべてのメッセージを受け取ります。

ケース 1 が失敗し、ケース 2 (送信者 ID 全体) が成功するのはなぜですか?

4

2 に答える 2

0

携帯電話の組み込みの gtalk アプリケーションからサインアウトしていることを確認してください。gtalk アプリからサインアウトしていない場合、Google サーバーからプッシュされたメッセージに対して gtalk と個人アプリの間にあいまいさが生じ、送信できません。任意のアプリにメッセージを送信し、例外を与えます。

プッシュ通知の詳細はhttps://developers.google.com/android/c2d/をご確認ください。

最高の c2dm チュートリアル、http: //www.vogella.com/articles/AndroidCloudToDeviceMessaging/article.html

于 2012-05-08T10:52:26.580 に答える
0

これが C2DM の仕組みです。registration idと の両方に電子メール アドレスが必要なため、このように機能することは理にかなっていますauthentication token

プッシュ メッセージを送信するとき、サード パーティのサーバーは、(おそらく) "sender@gmail.com" に基づいて作成された登録 ID と、同じメールに基づいて作成された認証トークンを使用します。Google のサーバーがデバイスを調べて、その特定のメール アドレス アカウントを見つけようとします。デバイスには複数のアカウントを設定できますが、そのうちの少なくとも 1 つがデバイスの登録に使用するアカウントである必要があります。

それが問題ではないのに、なぜ Google はとにかくメールを要求するのでしょうか? デバイスの一意の ID を直接使用する方がはるかに簡単です。

于 2012-05-09T08:45:54.253 に答える