2012-04-14 21 views
0

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

答えて

-1

私たちはシミュレータでC2DMをテストできません。 C2DMサーバーに登録するには、デバイスのマーケットアプリが必要です。また、市場アプリにサインインする必要があります。そのため、アプリは完璧に動作します。

+0

こんにちはPavandroid、返信用のthx。そうですか?私のアプリは最初のエミュレータでうまく動作するからです。これは、registration_id(またはauth_token)の重複のために登録に失敗した2番目のものに過ぎません。 –

+0

私は確信しています。しかし、あなたはsimet/sのMaketアプリを持っていますか? – Pavandroid

+0

ええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええんせんりょうだいかんせんちゃんのおかげで、 AFAIKでは、GoogleAPIsレベル8と有効なGmailアカウントを使ってエミュレータでc2dmをテストできます。 –

0

は、私はこれが役立つ

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); 


     } 
    } 

希望....

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", "[email protected]");//put here different gmail id 
        startService(intent); 
         } 

を登録するためのコードの上に使用し、登録IDを受信するには、以下のクラスを使用していました。

+0

こんにちはGanesh、返事のためのthx、私は前にその部分をしています。 1つのエミュレータでアプリケーションをテストすると、すべてうまく動作します。問題は2つのエミュレータを使いたいということです。 auth_tokenと同じregistration_idがc2dm serverによって指定されているため、2番目は登録に失敗しました。同じregistration_id(またはauth_token)のデバイスを2つ持つことはできませんか?だから、どうすれば私のエミュレータに別のregistration_idを持たせることができますか? Thxもう一度.. –

+0

コードの上の井戸の男は私のためにもうまく2番目のエミュレータで動作し、私は上記のコードで使用しているすべてのgmailのidはエミュレータ - >設定 - >アカウントn同期 – Ganesh

関連する問題