Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.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应用程序共享GCM服务?_Android_Google Api_Google Cloud Messaging - Fatal编程技术网

如何为两个android应用程序共享GCM服务?

如何为两个android应用程序共享GCM服务?,android,google-api,google-cloud-messaging,Android,Google Api,Google Cloud Messaging,根据我的研究,GCM需要以下数据 APP API KEY Server KEY Project Number 问题是,有两个应用程序,我希望它们都使用相同的GCM服务,这意味着接收相同的消息,使用相同的数据库存储注册ID。但是,我发现这样的冲突: 如果使用不同的google项目,则服务器API键与项目ID不匹配(似乎项目编号应该与服务器API键对齐) 但是,很明显,如果我使用同一个项目,应用程序API键也不相同。您所要求的是不可能的。即使两个应用程序使用相同的谷歌项目、相同的项目编号和相同的A

根据我的研究,GCM需要以下数据

APP API KEY
Server KEY
Project Number
问题是,有两个应用程序,我希望它们都使用相同的GCM服务,这意味着接收相同的消息,使用相同的数据库存储注册ID。但是,我发现这样的冲突:

如果使用不同的google项目,则服务器API键与项目ID不匹配(似乎项目编号应该与服务器API键对齐)


但是,很明显,如果我使用同一个项目,应用程序API键也不相同。

您所要求的是不可能的。即使两个应用程序使用相同的谷歌项目、相同的项目编号和相同的API密钥(这是可能的),每个应用程序都将分别注册到GCM并接收不同的注册ID。您必须将消息发送到两个注册ID,以便同一设备上的两个应用程序都能接收该消息

但是,在同一台设备上有两个应用程序接收相同的消息是没有意义的。如果您的要求是拥有同一应用程序的两个版本(例如免费版本和付费版本),并且每台设备只安装了两个版本中的一个,那么如果您使用相同的项目编号和API密钥,您的服务器不需要知道这两个应用程序之间的差异(因为将使用相同的API密钥向两个应用发送消息)。

GCM不是为在应用之间“共享”而设计的。如果可以,则可能会有其他应用截获消息的危险。如果必须,请在服务器上复制消息。