在Android App和Winform应用程序之间发送和接收消息

时间:2015-06-26 15:05:48

标签: c# winforms azure google-cloud-messaging

看了很久,并没有发现任何显示出来的东西,所以我提前道歉我错过了什么。

我有一个在KitKat(Android 4.4.2)上运行的Android应用程序和一个运行Windows 7的Winforms应用程序。我需要在它们之间发送消息。

显然,GCM可以将消息发送到Android设备。我有使用GCM从Winforms发送到Android设备的代码。我找不到让Android应用程序发送任何 BACK 的方法。是否可以使用Winforms应用 RECEIVE GCM消息?我必须使用Azure吗? (所有示例似乎都集中在Windows应用商店和Windows 8.1上,由于客户端的限制,在这种情况下,其中任何一个都不能成为解决方案。)

1 个答案:

答案 0 :(得分:0)

我把它放在这里以防万一有人偶然发现并有类似的问题。这不是一个真正的答案。仍然希望有人来这里表明我错了。但是在26天之后,没有人提出任何建议,所以我猜不到。

我没有办法以我希望的方式实现这一点。 Windows 7没有内置它(AFAIK)。 Windows 10应该内置它,但是Windows 7早于云的巨大转变,并且在设计中没有它。如果我正在使用像Xamarin这样的东西 - 这是一个跨平台的工具,这可能是可能的。但是,Windows 7中没有用于接收来自云的消息的概念。

为了实现这一目标,必须在混合中添加某种服务器,这些服务器可以接收消息并通过REST API传递它们。这超出了我想编码的范围。

我发现的解决方案是使用包装REST服务的Microsofts API。例如,这允许与OneDrive进行通信。这就是我用作我的中间REST服务器。

Microsoft LIVE SDK

这里有一个非常好的Android示例示例列表,可以用于我需要的东西。好消息是Upstream只是一个简单的电话,我不需要让Android设备轮询任何东西(这会导致电池耗尽)。笔记本电脑需要轮询OneDrive,但它已插上电源,因此没有电池寿命问题。

但是,需要注意的一点是,微软提示他们不希望一大堆流量流向OneDrive。这来自概述文档:

  

<强>节流

     

OneDrive有限制,以确保个人和应用程序   不会对其他用户的体验产生不利影响。当一项活动   超过OneDrive的限制,API请求将被拒绝一段时间   时间OneDrive也可以返回带有该号码的Retry-After标头   你的应用应该在发送更多请求之前等待几秒钟。

虽然,我从未见过这些限制实际上是什么,所以YMMV。