2016-05-04 15 views
-2

標準の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"); 
+0

なぜ私は-1を得ましたか?私は誰かが説明できることを望みますか? – JianYA

+0

「ユーザー自身ではなく、その特定の要求にどうすればよいか」 - あなたが何を求めているかはまだ分かりません。 –

+0

現在、ユーザーはgcm登録ID、ユーザー名、およびタイトルなどのパラメーターをサーバーに送信する要求を行います。私はサーバーからこれらの詳細を拾って、返信を電話に送り返すことができます。しかし、ユーザーが別の要求を送信した場合、その要求に対して具体的な応答をどのように送信しますか。 – JianYA

答えて

0

これは、どのユーザーがどのデバイスを使用しているかを確認します。 registration Idは、ユーザを考慮しないで、あなたのバックエンドで自分で処理する必要があります。登録IDをと接続する必要があります。

関連する問題