我有两个应用程序C和D.我想要实现的是通过GCM从C(在一个设备上)向D(在不同的设备上)发送通知。当用户点击为应用D收到的通知时,D内的活动开始。我不知道我是否可以这样做。我可以在安装在不同设备上的应用程序中发送和接收通知,但在不同应用程序之间进行通信对我来说有点棘手。任何帮助,将不胜感激。
答案 0 :(得分:0)
是的,您可以为这两个应用使用相同的发件人ID。但是当您发送消息时,您指定了一个注册ID,该ID隐式链接到生成它的app +设备的包名称。只有请求注册ID的应用才会收到您的消息。最后,您必须为这两个应用程序添加相同的包名称。
注意:您无法在Android设备上安装具有相同程序包名称的两个应用程序。
根据评论进行编辑:
如果您了解其他应用的包名称,则可以执行此操作。说,这将是:
com.example.myappD
现在,使用Intent并启动默认启动器活动:
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.example.myappD");
startActivity(LaunchIntent);
在启动器活动onCreate()
中,只需检查您导航到此活动的位置。如果您来自通知,请启动所需的活动。
答案 1 :(得分:0)
您可以通过以下方式执行此操作:
这两个应用可以使用相同的发件人ID,也可以使用不同的发件人ID。如果他们使用不同的发件人ID,则您的服务器将需要为每个发件人ID使用不同的API密钥。这两个应用没有理由拥有相同的包名。
您的服务器将接受来自这两个应用的注册ID。您必须使用一个字段存储每个注册ID,该字段指示它属于哪个应用程序。
如果某个设备上的应用C想要向另一台设备上的应用D发送GCM消息,它会向服务器发送一条消息(以某种方式指示接收设备和应用的标识符 - 由您来决定如何识别收件人)。然后,服务器将找到应用程序D的接收方设备的注册ID,并使用与此应用程序匹配的API密钥将消息发送到该设备。