2016-07-08 4 views
2

以下のコードを使用して、複数の送信者IDのRegisterIdを生成しました。同じアプリ内の複数のGCM送信者

public class RegistrationIntentService extends IntentService { 
    @Override 
    public void onHandleIntent(Intent intent) { 
    InstanceID instanceID = InstanceID.getInstance(this); 
    String senderIDs = "SENDER_ID_1,SENDER_ID_2"; 
    String token = instanceID.getToken(senderIDs, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 
    } 
} 

私は

https://github.com/layerhq/documentation/blob/master/android/guides/push-integration.md

https://developer.layer.com/docs/android/guides

、からこのコードを呼ばしかし、私は "INVALID SENDER" 例外が発生しました。

この問題を解決するのを手伝ってください。

答えて

2

GCMは、複数の当事者が同じアプリケーションにメッセージを送信できるようにします。

たとえば、アプリケーションが複数のコントリビュータを持つアーティクル集約であり、新しいアーティクルを発行するときにメッセージを送信できるようにする場合を考えます。アプリケーションが記事をダウンロードできるように、このメッセージにはURLが含まれている可能性があります。 GCMは、すべての送信アクティビティを1か所に集約する代わりに、各投稿者が独自のメッセージを送信できるようにします。

これを可能にするには、各送信者に独自のプロジェクト番号を生成させるだけです。次に、登録を要求するときに、これらのIDをコンマで区切られた送信者フィールドに含めます。最後に、登録IDをパートナーと共有すると、独自の認証キーを使用してアプリケーションにメッセージを送信できます。

このコードスニペットはこの機能を示しています。送信者は、コンマ区切りのリストで意図余分として渡される:

Intent intent = new Intent(GCMConstants.INTENT_TO_GCM_REGISTRATION); 
intent.setPackage(GSF_PACKAGE); 
intent.putExtra(GCMConstants.EXTRA_APPLICATION_PENDING_INTENT, 
PendingIntent.getBroadcast(context, 0, new Intent(), 0)); 
String senderIds = "968350041068,652183961211"; 
intent.putExtra(GCMConstants.EXTRA_SENDER, senderIds); 
ontext.startService(intent); 

100の複数の送信者の限界があること。

複数の送信者の詳細については、こちらをご確認ください。https://stuff.mit.edu/afs/sipb/project/android/docs/google/gcm/demo.html

関連する問題