Sem*_*nko 29 android google-cloud-messaging
https://developers.google.com/cloud-messaging/android/client 我已经阅读了这篇文章.它说我需要下载配置文件并将其添加到我的项目中.但他们没有解释,我为什么要这样做呢?如果不添加配置文件,它会不会工作?
Mic*_*ond 17
如果您没有为项目生成并添加正确的配置文件,那么是的,您将无法获得推送通知.
在以前版本的SDK中,您必须在代码中手动配置senderID.
现在,通过GCM 3,Google统一了配置Google服务的方式.他们的门户现在允许您配置要为您的应用启用的所有服务.完成后,它会生成一个配置文件,其中包含您需要从移动设备使用该服务的参数.
如果没有该信息,最明显的是项目编号,Google将无法生成允许使用您的senderID和Server API密钥接收推送的InstanceID.这是一种匹配Android上的客户端凭据的方法,后端的服务器凭据允许您仅向您的Android应用和应用发送推送通知.
配置文件由google-services Gradle Android插件使用,以生成所需的配置资源.这意味着如果你在build.gradle文件中有这个,你正在使用它:
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)
然后,它将生成R.string.gcm_defaultSenderId您在Google GCM示例代码中看到的资源:
InstanceID instanceID = InstanceID.getInstance(this);
String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Run Code Online (Sandbox Code Playgroud)
但是,如果您决定在代码中对SenderID进行硬编码并将其传递给instanceID.getToken方法,那么它确实会起作用.拥有JSON配置文件是Google提供的便利.它更加清晰,因为它集中了您的所有Google服务参数.
您的应用程序与project/senderID的链接是必需的,但如果您真的不喜欢使用此JSON Google服务器配置文件,则可以通过手动将所需值放在其他位置来解决此问题.
我也在研究多个GCM项目,但仍然使用Eclipse,Eclipse-ADT-plugin和旧的项目结构,我没有将这个配置文件包含到我的项目中.我也在开始时感到困惑,因此在使用Gradle的Android-Studio项目中尝试了它,但配置文件也没有必要.
所以Rémond的回答可能有意义但对我来说一切正常(包括生成InstanceID-Token以及Topic-Messaging正在运行).
所以事实上,它应该可以在不添加文件的情况下工作,无论如何你都不需要这个文件.
| 归档时间: |
|
| 查看次数: |
3270 次 |
| 最近记录: |