1

いくつかのクエリを持っています....

final String regId = GCMRegistrar.getRegistrationId(this);               // MainActivity.java class

このステートメントにより、このアプリケーションを実行しているデバイスの登録 ID を動的に受け取り、Web サーバーに送信しています。しかし、あなたが言ったように、他の識別要素(ユーザーIDまたは電話ID)をWebサーバーに送信することに加えて. これらの ID を動的に取得して送信する方法。

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
 for (int i = 0; i < Vars.length; i++) {
            nameValuePairs.add(new BasicNameValuePair(Vars[i][0], Vars[i][1]));

配列の次元を動的に設定する方法。登録済みのデバイスに応じて、登録済みのすべてのデバイスの登録 ID の配列を設定し、それを Web サーバーに送信しているためです。GCMIntentService クラスの OnRegistered & UnRegistered メソッドを貼り付けてください。

また、サーバー側で.net開発者がそのデータの配列をGCMサーバーに送信する方法。現在、彼は複数のデバイスの登録 ID を json 形式で送信していますが、実行されていません。404 エラーまたは不正なリクエストが発生しています。以下のステートメントを使用する単一の登録 ID の場合、サーバー側で実行されます。

string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=1&data.message=" + value + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" + deviceIDs + "";

他の ID を渡す必要がある場合はお知らせください。1000 人以上のユーザーがアプリケーションをインストールできることに戸惑うからです。それらの多くのIDをデータベースに保存するのは効率的ですか??? 私たちのサーバーはそれらの多くの ID を GCM サーバーに送信する必要があるため、そうしないと全員がプッシュ通知を受信しません。

4

2 に答える 2

1

登録IDは定期的に変更されます。私はzhydianIDが無効になることに同意します。

デバイスを識別するために、一意のデバイス番号を使用できます。

于 2013-01-15T12:53:33.637 に答える
1

アプリを使用しているすべての人にのみ送信する場合は、GCM ID 以外の情報を保存する必要はありません。ただし、それらを個別に保存しないと、最終的には無効な ID を持つことになります。電話が新しい ID を取得する場合があり、それらを 1 つのレコードに保存すると、どの ID がどのように変更されたのかわかりません。

nameValuePairs リストは、フォーム リクエストの値を保持します。gcmid、OtherUniquePhoneInfo、その他送信したいものなど。すべての GCM ID を 1 つのレコードに保存している場合は、GCM ID のみを送信する必要があります。nameValuePairs リストに 1 つのフィールドを追加するだけです。

アプリがインストールされているすべてのデバイスに送信する場合は、すべての ID を GCM サーバーに送信する必要があります。

于 2013-01-15T12:34:08.887 に答える