10

アプリに c2dm を実装する必要があります。これもやっている人はいますか?助けてください。いくつかのチュートリアルは非常に役立ちます。または、c2dm の実装が完了している場合は、チュートリアルが非常に役立ちます。

助けてください。

4

2 に答える 2

26

私は先に進み、Android 用の Chrome2Phone ソース コードをダウンロードし、その例を通してそれがどのように機能するかを理解しました。アプリのサーバー側を実装するのに最も苦労しました。

からダウンロードしてください: http://code.google.com/p/chrometophone/source/checkout

またはsvn:

svn checkout http://chrometophone.googlecode.com/svn/trunk/ chrometophone-read-only

理解しておくべき基本事項。

C2DMBaseReciever クラスには次のものがあります。

@Override
    public final void onHandleIntent(Intent intent) {
        try {
            Context context = getApplicationContext();
            if (intent.getAction().equals(REGISTRATION_CALLBACK_INTENT)) {
                handleRegistration(context, intent);
            } else if (intent.getAction().equals(C2DM_INTENT)) {
                onMessage(context, intent);
            } else if (intent.getAction().equals(C2DM_RETRY)) {
                C2DMessaging.register(context, senderId);
            }
        } finally {
            //  Release the power lock, so phone can get back to sleep.
            // The lock is reference counted by default, so multiple 
            // messages are ok.

            // If the onMessage() needs to spawn a thread or do something else,
            // it should use it's own lock.
            mWakeLock.release();
        }
    }

このメソッドは、C2DM サービスからインテントを受け取り、処理します。

handleRegistration メソッドでは、次のようなコードが表示されます。

} else {
            try {
                onRegistrered(context, registrationId);
                C2DMessaging.setRegistrationId(context, registrationId);
                //Add some code here to send your server the registration ID for this phone.
            } catch (IOException ex) {
                Log.e(TAG, "Registration error " + ex.getMessage());
            }
        }

次に、google oAuth ログイン サービスを使用してサーバーをサービスに登録する必要があります。登録が完了すると、メッセージを送信できます。私がテストしていたとき、curl を使用して http ポスト リクエストをサーバーに送信していました。

サーバーから登録するには:

curl https://www.google.com/accounts/ClientLogin -d Email=theEmailYouWhitelisted -d Passwd=pass****word -d accountType=HOSTED_OR_GOOGLE -d source=Google-cURL-Example -d service=ac2dm

認証 ID を含むメッセージが表示されます。次に、それを使用してメッセージを送信します。メッセージを送信するには:

curl --header "Authorization: GoogleLogin auth=**authFromRegistrationAbove**" "https://android.apis.google.com/c2dm/send" -d registration_id=**phoneRegistrationId(reciever)** -d "data.message=StringToPass" -d collapse_key=something -k

curl からダウンロード: CURL

お役に立てれば。

于 2010-10-25T13:26:31.187 に答える
1

c2dm クライアント/サーバーの登録とメッセージの送受信に関するチュートリアル。

http://android.arnodenhond.com/tutorials/cloud-to-device-messaging

  • 登録 ID を要求する意図
  • 登録IDを受け取るレシーバー
  • サーバーを登録するために呼び出す URL
  • メッセージを送信するために呼び出す URL
  • メッセージを受信するブロードキャストレシーバー
于 2011-06-23T20:49:56.287 に答える