Windows Mobile(C#) – 在手机和PC之间进行通信

我正在开发一个项目,在这个项目中,在手机上运行的程序需要与在其连接的PC上运行的程序进行通信。 理想情况下,我想使用USB,WiFi,无论如何进行通信。

这两个程序应该能够传达诸如电池寿命,短信等内容……但是我可以稍后再努力,我只需要让它们进行交谈。

最好的方法是什么?

“最佳”是非常主观的,高度依赖于许多因素,如设备,拓扑,防火墙存在,安全需求等等。

您需要在哪里发送通信,并且您是否有ActiveSync连接? 如果PC启动通信并且您有ActiveSync,那么RAPI就是您使用的传输,因为它已经完成并准备好了所有基础设施。

对于其他任何事情,您将需要某种forms的专有协议和传输机制。 通常我会编写一个带有已定义消息结构的简单套接字协议(通常是消息ID,CRC,消息长度和数据有效负载)。 然后我有一些基本的消息类来处理通信,并为我想要的每个特定命令处理一组派生消息。 对于需要响应的双向内容,我通常会创建一个基本的Response类,然后从中派生特定的响应格式。

假设你有一个wifi连接,你的Windows Mobile程序与你的PC通信的一种方法是在.NET compact framework 3.5上使用WCF。

您将创建一个新的WCF应用程序来运行您的PC,并公开一个界面,公开您要从Windows Mobile设备调用的function。

Windows Mobile上的WCF要求在您的设备上安装Compact Framework 3.5。 您还需要“Windows Mobile power toys”才能生成从Windows Mobile调用的兼容代理。

适用于.NET Compact Framework 3.5的Power Toys

从WM设备调用WCF服务还需要您手动设置绑定和端点以传递到您的Web服务代理(使用桌面WCF,这是通过从配置文件加载它们自动完成的)。

Windows Mobile上的WCF目前仅支持基本的http绑定(如果需要可以加密),但这可能足以满足您的需求。

您可以尝试查看OpeNETCF.Desktop.Communications库。 您可以从http://www.opennetcf.com/FreeSoftware/tabid/84/Default.aspx开始,然后点击链接查找必要的下载内容。 (我想你可能需要从他们的subversion存储库中获取它)。

WIMO正在开发WiFi到桌面支持,可能已经完成。 无论哪种方式,都值得一看。

资源

在2015年发现这一点,所以我认为答案不会与原始提问者相关,但是对于记录:Proximity https://msdn.microsoft.com/en-us/library/windows/apps/xaml /hh465205.aspx