我使用以下代码为多个发件人ID生成RegisterId。
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”例外。
请帮我解决此问题。
答案 0 :(得分: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