3

Android SDK で提供されている Google クラウド メッセージングのサンプル コードをいじっています。クライアント コードとサーバー コードの両方が正常に動作します。GCM クライアント Android アプリを 3 つの Android デバイスにインストールしました。サーバーが実行されていると、各デバイスが GCM サーバーに正常に登録されます。メッセージを送信しようとすると、サーバーは 3 つのデバイスすべてにメッセージをブロードキャストします。しかし、私の質問は、デバイスのいずれかをブラックリストに載せたり、サーバーが特定のデバイスにメッセージを送信できるようにしたりできるかどうかです。

各デバイスのサーバーで生成された登録IDを使用してデバイスを制限する方法はありますか?

プッシュ通知を送信するためのサーバー コードは次のとおりです。

if (devices.size() == 1) {          
    String registrationId = devices.get(0);
            if(!(registrationId .equalsIgnoreCase("APA91bE61KYmI4Qzn9NKkh6wkHr1ya8FIfGbc_gYJf0_33558IeFnj9j8j4EPRaJeSKJ_CK6_a9FQLt_CapLE4e_mvRaq3hytJalfjTBbkAxbLIdfdXyoxatSrDPmtxSdyaeiRV-Bav-4qOSlURH5mL69Fa9ktX8JFoow")))
            {
                            Message message = new Message.Builder().build();
                            Result result = sender.send(message, registrationId, 5);
                            results = Arrays.asList(result);
            }
  } else {
    // send a multicast message using JSON
    Message message = new Message.Builder().build();
    MulticastResult result = sender.send(message, devices, 5);
    results = result.getResults();
  }
4

1 に答える 1

3

GCM-Server には一部のデバイスを制限する組み込みの方法はありませんが、独自のブラックリストを作成して、このリスト以外のデバイスにメッセージを送信できます。

ブラックリストに登録 ID を含まない devicesList を作成し、このリストにマルチキャスト メッセージを送信できます。

GCM サーバー側コードの詳細については、ここでjavadoc を確認してください。

于 2012-08-02T09:55:11.710 に答える