集成GCM和gcm_defaultSenderId未解决。

4
我正在将GCM集成到我的应用程序中,我所做的是创建了配置文件google-services.json并将其放置在app文件夹中(我正在使用Android Studio)。资源文件也已经导入,我还在应用程序的build.gradle中包含了插件,如下所示。
apply plugin: 'com.google.gms.google-services'

问题在于它仍未得到解决。我想知道出了什么问题?

我已经搜索了相关内容,发现了this,我现在使用了我的项目编号,没有错误出现。这样做对吗?有人能解释一下吗?


我不确定自己是否正确,但我猜您对发送者ID的目的也不确定?请查看此链接:https://developers.google.com/cloud-messaging/gcm#senderid 这里解释了GCM实现中使用的发送者ID和其他凭据。您需要从Google Dev Console中获取GCM项目的发送者ID,并在调用 'instanceID.getToken("place_your_sender_id_here", GoogleCloudMessaging.INSTANCE_ID_SCOPE, null)' 时使用它。 - sschmid
我知道发送者ID的目的,但我的问题是它是否可以通过读取JSON配置文件来自行读取? - Syed Raza Mehdi
不,你必须手动将它传递给register方法。据我所知,配置文件相当无用,我已经成功运行了两个Gcm项目,甚至没有包括配置文件。 - sschmid
我下载了示例,只需将配置文件添加到应用程序文件夹中,它就不会要求我手动添加。我不明白为什么在我的其他项目中它不起作用。如果我手动添加它,它是否能完美地工作。它正在创建GCM令牌,所以我认为它工作正常。 - Syed Raza Mehdi
一旦您收到令牌,当然一切都很好。我们在另一个线程上进行了类似的讨论,请参考此答案:https://dev59.com/Vl0Z5IYBdhLWcg3wdQTU#31717800。正如您发现的那样,您可以手动交出您的发送者ID,或者如果插件能够正常工作,您应该能够使用生成的R.string.gcm_defaultSenderId资源,其中包含在配置文件中定义的您的发送者ID。如果插件在您自己的项目中无法正常工作,我个人会只复制示例并删除您不需要的所有内容,或者继续手动传递发送者ID。 - sschmid
您可以放弃R.string id并通过名称获取值:https://dev59.com/XF0a5IYBdhLWcg3wHlik#38995785 - Vaiden
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接