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