0

現在、ノートブックで c2dm アプリをテストしています。サーバーとクライアントデバイス間の通信をテストするために、2 つのエミュレーターを使用しました。問題は、2 番目のデバイスが最初のデバイスと同じ [auth_token] を持っているため、サーバーへの登録に失敗したことです。(どちらも別の有効な Gmail アカウントを持っています)。[auth_token] が異なる 2 つ (またはそれ以上) のエミュレーターを使用できるように、助けてくれる人はいますか? 前にありがとう.. :)

4

2 に答える 2

0

私は登録のために上記のコードを使用しました

SharedPreferences wmbPreference1 = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
boolean isRegistrationId = wmbPreference1.getBoolean("RegistrationId", true);
    if(isRegistrationId)
       {

            Log.w("C2DM", "start registration process");
             SharedPreferences.Editor editor = wmbPreference1.edit();
             editor.putBoolean("RegistrationId", false);
              editor.commit();
              Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER");
intent.putExtra("app",PendingIntent.getBroadcast(put here your current acitivity.this, 0, new Intent(), 0));`


     intent.putExtra("sender", "xyz@gmail.com");//put here different gmail id 
                    startService(intent);
                       }

以下のクラスを使用して登録IDを受け取りました。

public class C2DMRegistrationReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        Log.w("C2DM", "Registration Receiver called");
        if ("com.google.android.c2dm.intent.REGISTRATION".equals(action)) {
            Log.w("C2DM", "Received registration ID");
            final String registrationId = intent
                    .getStringExtra("registration_id");
            String error = intent.getStringExtra("error");
            Log.w("C2DM", "Received registration ID"+registrationId);
            Log.d("C2DM", "dmControl: registrationId = " + registrationId
                    + ", error = " + error);
            String deviceId = Secure.getString(context.getContentResolver(),
                    Secure.ANDROID_ID);
            Log.w("C2DM", "Received device ID"+deviceId);


        }
    }

これがお役に立てば幸いです。

于 2012-04-14T03:21:15.887 に答える
-1

シミュレータでC2DMをテストすることはできません。C2DMサーバーに登録するには、デバイスのマーケットアプリが必要なためです。また、マーケットアプリにサインインする必要があります。アプリが問題なく実行されるようにします。

于 2012-04-14T02:44:30.990 に答える