Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么我自己的发件人ID会收到一封无效注册邮件?_Android_Google Cloud Messaging - Fatal编程技术网

Android 为什么我自己的发件人ID会收到一封无效注册邮件?

Android 为什么我自己的发件人ID会收到一封无效注册邮件?,android,google-cloud-messaging,Android,Google Cloud Messaging,我一直致力于在一个应用程序中实现GCM,基于谷歌的例子,我已经能够让它工作。但是,当我尝试使用自己的发件人ID和作用域时,当我尝试发送通知时,会返回一个InvalidRegistration错误。例如,这项工作: token = instanceID.getToken(getString(R.string.gcm_defaultSenderId), GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 如果没有,我已经从项目中仔细检查了发件人ID,事实上

我一直致力于在一个应用程序中实现GCM,基于谷歌的例子,我已经能够让它工作。但是,当我尝试使用自己的发件人ID和作用域时,当我尝试发送通知时,会返回一个
InvalidRegistration
错误。例如,这项工作:

token = instanceID.getToken(getString(R.string.gcm_defaultSenderId), GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
如果没有,我已经从项目中仔细检查了发件人ID,事实上,我的开发人员控制台中现在只有一个项目,因此我不可能使用不正确的项目:

token = instanceID.getToken(getString(R.string.my_sender_id), SubscriptionHelper.INSTANCE_SCOPE, null);
我是否缺少一个关键部件?为什么它使用默认的发件人ID,而不是我从开发人员控制台获得的发件人ID?

根据,您的InstanceID令牌调用应该如下所示

InstanceID instanceID = InstanceID.getInstance(this);
String token = instanceID.getToken(
    getString(R.string.gcm_defaultSenderId),
    GoogleCloudMessaging.INSTANCE_ID_SCOPE, 
    null);

请注意,必须用作第二个参数-InstanceID比GCM更通用,因此它是一个可以接受任何字符串的参数,但GCM特别需要该授权范围。

什么是
SubscriptionHelper.INSTANCE\u范围
?该范围看起来不像GCM所需的范围(
GoogleCloudMessaging.INSTANCE\u ID\u scope
)?请检查发送到服务器的令牌是否完整(可能需要从客户端和服务器登录以检查此情况)。如果标记被截断或更改,则可能发生这些错误。@IANIBALLAKE这是一个自定义字符串。根据我发现的一些示例:
例如,使用GCM进行通信,但您可以使用最多1000个URL安全字符,也可以将其保留为空。
检查此Q/a@Koh,我正在从服务器获取令牌,然后手动复制/粘贴到测试应用程序中进行发送。我已经仔细检查过了。是的,我在我的原始原型中使用了该指南,然后在我自己的应用程序中实现时,我想使用我自己的发送者ID,这是我遇到的文档:它使用GCM的硬编码值,而不是内置常量,我认为这是我产生困惑的原因。谢谢你的澄清。我正在使用上面的代码,但我仍然有同样的错误。。你能看一下吗?