Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Windows Mobile (C#) - Communicating between phone and PC

I'm working on a project where a program running on the mobile phone needs to communicate with a program running on the PC it's connected to. Ideally, I'd like to use USB, WiFi, whatever to communicate.

The two programs should be able to communicate things like battery life, text messages, etc... But I can work on that later, I just need to get them to talk.

What's the best way to do this?

like image 962
Mike Christiansen Avatar asked Dec 05 '08 16:12

Mike Christiansen


People also ask

Is Windows Mobile Device Center still available?

Windows Mobile Device Center is no longer supported The content in this article is for Windows Mobile Device Center which is no longer supported.

What is the use of Windows Mobile?

Windows Mobile supplied a basic suite of applications that was designed to be similar to the desktop version of Windows. It also came bundled with a set of applications, including Internet Explorer Mobile, Windows Media Player and Microsoft Office Mobile. Initially, Windows Mobile devices required a stylus.

What is Windows Mobile device?

Windows Mobile is a mobile operating system developed by Microsoft, based on Windows CE and is the successor to Pocket PC 2002 and predecessor of Windows Phone. New devices running Windows Mobile were released between 2003 and 2010.


2 Answers

Assuming you have a wifi connection, one way for your Windows Mobile program to communicate with your PC would be to use WCF on the .NET compact framework 3.5.

You'd create a new WCF application to run you your PC, and expose an interface exposing functions you want to call from your Windows Mobile Device.

WCF on Windows Mobile requires Compact Framework 3.5 to be installed on your device. You also need the "Windows Mobile power toys" to be able to generate compatible proxies to call from Windows mobile.

Power Toys for .NET Compact Framework 3.5

Calling the WCF service from your WM Device also requires you to manually set up the binding and endpoint to pass into your web service proxy (with desktop WCF this is done automatically by loading them from a config file).

WCF on Windows Mobile currently only supports the basic http binding (which can be encrypted if you want), but this may be enough for your needs.

like image 140
John Sibly Avatar answered Nov 03 '22 00:11

John Sibly


"Best" is really subjective and highly dependent on a lot of factors like devices, topology, firewall presence, need for security, etc, etc.

Where do you need the comms to originate and will you have an ActiveSync connection? If the PC initiates the comms and you have ActiveSync, then RAPI is the transport you'd use as it's got all of the infrastructure done and ready.

For anything else you're going to need some form of proprietary protocol and transport mechanism. Typically I write a simple socket protocol with a defined message structure (typically a message ID, CRC, message length and data payload). I then have some base message class that handles the comms and a set of derived messages for each specific command I want. For 2-way stuff that requires a response, I typically create a base Response class and then derive specific response formats from it.

like image 25
ctacke Avatar answered Nov 02 '22 23:11

ctacke