2016-07-08 3 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은 모든 전송 활동을 한 곳에서 중앙 집중화하는 대신, 각 참여자가 자신의 메시지를 보낼 수있는 기능을 제공합니다.

이렇게하려면 각 발신자가 고유 한 프로젝트 번호를 생성해야합니다. 그런 다음 등록을 요청할 때 보낸 사람 필드에 쉼표로 구분 된 해당 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

관련 문제