Windows Phone 7 programming the use of the USB port - windows-phone-7

I would like to make a Windows Phone 7 application that takes advantage of it's USB port to communicate with the PC. I would like to write an application to control or push information/data to the PC from the application. But I am having problems finding information on where to start. Can anyone help point me in the right direction with some resources?

The only way to communicate over the USB connection is over HTTP.
To get this to work you'll need:
- a webservice hosted on the PC you're connecting to.
- a way for the app (on the phone) to know the hostname of the PC. (You'll probably need to enter it manually)
When you have these it should be straight forward.

You can't.
If you want to make sure to push data to a client PC, you will have to use a kind of synchronization by using the internet. For example create a wp7 application and a desktop application and let them sync the data based on a user object or anything like that.
As far as I know also the updated SDK for Mango will not support programming against the USB dataconnection.

Related

Creating a Bluetooth COM Port on Windows Programmatically

I have developed a Qt application that communicates with a specific bluetooth device. The application works on linux, android and mac flawlessly, but the qbluetooth api is not supported on windows. I have selected the serial api as a workaround, and have successfully done the task using a virtual COM port on the bluetooth device. The problem is that I don't want the end-user to create the COM port, and want to create it in setup time programmatically. I have done an extensive search, but have found no clue on it. Can anyone give me a hint on it? Thanks in advance.

How to communicate with the USB Host from a Linux USB Client

The host part will be a PC program made from c# in which I will use LibUSBdotnet to do the communication.
My problem is how do I make the Linux side pickup and respond. I don't really know where to start.
Whenever I try to search for it, all result show are "how linux communicates with a device attached to it".
Or it does not matter if a device is host or client, because they utilize the same pipes/bus?
Can I use something in "/dev/usb***"?
I have seen "libusb" which I believe is the linux cousin of libusbdotnet.
Can I somehow use this library? If anyone can show me the right direction, I would really appreciate it.
AFAIK libusb is the library for usb-host side, not for usb-device side. So you cannot use it in your case. I suggest the same as myninjaname said - to analyse one of the Linux usb gadget drivers as a start point.

Windows Phone - Application crashes when disconnected from PC

Whenever I disconnect my Windows Phone from PC (connected through USB) and if my application is running, my application hangs for sometime and then application crashes.
Does anyone experienced same behavior? I guess switching for PC connection to Wi-Fi/GPRS is causing the issue.
the windows Phone Requires that you Safely Remove hardware first, after a few times when i started Development on the windows phone i did the same and Ended up getting a new Phone. So plainly put, try to Safely Remove and Make sure it is installing the app to the Device.
Meaning if you Remove the phone, the App is still able to be ran just like a normal downloaded App form the Market place.
if you want more in depth information, i would suggest Reading the WP7 Everything Programming ebook lol
its filled with good information, and Definitely Helped me along my road to Love DEV for WP7.
As gamernb says, if you disconnect the USB from a properly tethered Windows Phone (i.e. connected to Zune, or using the WPConnect utility), the phone's network connection will be reset and your app's connections will be terminated. The phone will then start trying to connect using WiFi or cellular data (if they are on), but this can take quite a while.
You will have to handle this network disconnection in your app - I've found that pulling the USB cable in this way is a good ad-hoc test for WP7 apps: do an action which you know will use the network connection. Then watch if the app crashes, or handles this gracefully.
Actually you aren't guaranteed to always use the PC data connection: if you make sure that the computer has no data connection (i.e. pull the Ethernet cable, turn off WiFi etc ), the WP7 app can then use cellular data or WiFi on the phone instead.
Alas-
you could set perimeters in your application to Check what the connection type is, then Make changes accordingly.
You May have a slight freeze, but that's better then a crash....mainly when the phone switches from PC to WWAN, their would be a slight Pause.
use the Reachability Class and NSLog to Figure out whats going on exactly.
I really hope that helps!

desktop app (windows app) connect windows phone

is there a assembly or API to get isolated storage in windows phone using WPF or win form while connecting the windows phone device via USB?
please note the devise will be running offline so cannot use web service or WCF
thanks
Check out this article on emulator automation. It includes details of adding and removing files from isolated storage and should also work on an actual device as well as the emulator.
This isn't really a supported activity. I too have been thinking about what to do when you want a desktop version with extended features and you want the two to share data.
I think the key here is to think about how Microsoft achieves this with email and calendaring. There's no shared filesystem, rather Outlook on the desktop and Outlook on the phone both function as clients for the same Exchange server.
At one point I considered running a webservice in a desktop app so that the phone app could push data to the desktop app, but that would be a very manual process. The common-server model will provide a much better UX.
It's not an exact match to your situation, but a good tool is the Windows Phone 7 IsolatedStorage Explorer.
The reason I say it may not be the best match is this note from the documentation:
The WP7 Isolated Storage Explorer
supports connections from the emulator
or actual devices. For applications
running on devices a data connection
must be enabled (WiFi or the mobile
data connection).
It's at least a great start and keeps you from having to do the heavy lifting. Is there any reason you have to be offline and check the contents of IsolatedStorage? If you elaborate on why you have that requirement, we might be able to offer some work arounds.

How should I get ActiveSync / Mobile Dev Center to recognise my Windows CE device via USB?

We develop a custom Windows CE-based device. To connect this to the PC via ActiveSync / Mobile Device Center, we have to set up entries so that the WCE USB Serial Host (wceusbsh.sys) recognises our Vendor ID (Vid) and Product ID (Pid).
To do this, to date, we have distributed a modified version of wceusbsh.inf and wceusbsh.sys: when the user first connects the device then ActiveSync basically says it does not recognise the device, and the user is asked to identify a driver for it. If they now point at the location where they've stored our wceusbsh.* files then all is well. However this is pretty clunky.
What we really want is a slick way to do this, preferably by running an installer which just gets everything ready, so that as soon as the device is plugged in it is recognised by wceusbsh.sys.
Any clues how to do this? There seem to be a ton of registry entries which relate to WCEUSBSH, and it's not clear how these are set: just "installing" the .INF file doesn't seem to allow for setting them all, so it does look like ActiveSync reads the .INF file and then adds some more information before appending the new info to the Registry.
Thanks
Well, in case anyone else comes looking for an answer to this, we managed to do it via this link from MSDN WinUSB (Windows Driver Kit). We now have a driver install program which sets up USB / Mobile Device Center so that when you plug in the CE device it is recognised correctly.

Resources