標準のGCMブロードキャスト受信機があります。サーバーにリクエストすると、登録IDとユーザー名とタイトルが送信されます。サーバーから電話にメッセージを送り返したいときは、どうすればその特定のタイトルに再度確認できますか?今まで私が見たすべての例は、1つの要求に依存しているようです。 GCMサーバ上GCMブロードキャスト受信者は異なるリクエストを区別します
ユーザAレジスタをし、GCM登録ID ユーザーAがGCMの登録ID、タイトル、ユーザー名と要求を送信し得る:
場合、私はそれが十分に説明されていませんでしたサーバ。 サーバーからユーザーにメッセージが返されます。 ユーザー自身ではなく、その特定の要求にどうしたらよいですか?
これは私の放送受信機
public class GCMBroadcastReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
Intent update = new Intent("update");
update.putExtra("msg",extras.getString(AppConstants.MSG_KEY));
ComponentName comp = new ComponentName(context.getPackageName(), GCMNotificationIntentService.class.getName());
LocalBroadcastManager.getInstance(context).sendBroadcast(update);
startWakefulService(context, (intent.setComponent(comp)));
Log.d("ONRECEIVEWAKEFUL", "ONRECEIVEWAKEFUL");
Log.d("ONRECEIVEWAKEFULMSG",String.valueOf(extras.getString(AppConstants.MSG_KEY)));
setResultCode(Activity.RESULT_OK);
}
}
ですが、私は、フィルタか何かを設定する必要がありますか?
EDITあなたのバックエンドは熱いメッセージのみを送信することに対処する必要がありますが、それはまた、ユーザー/デバイスのことができますので、の「登録」のいくつかの並べ替えを扱うべきところImはGCMサーバからメッセージを受信
LocalBroadcastManager.getInstance(this).registerReceiver(onNotice, new IntentFilter("update"));
//Intent msg sent from Broadcast Receiver
String str = getIntent().getStringExtra("msg");
なぜ私は-1を得ましたか?私は誰かが説明できることを望みますか? – JianYA
「ユーザー自身ではなく、その特定の要求にどうすればよいか」 - あなたが何を求めているかはまだ分かりません。 –
現在、ユーザーはgcm登録ID、ユーザー名、およびタイトルなどのパラメーターをサーバーに送信する要求を行います。私はサーバーからこれらの詳細を拾って、返信を電話に送り返すことができます。しかし、ユーザーが別の要求を送信した場合、その要求に対して具体的な応答をどのように送信しますか。 – JianYA