views:

197

answers:

3

I'm thinking about an Android app (with possibly an accompanying physical device), and i'm trying to figure out whether this is something that's feasible.

1) Let's say I plug my Android to my PC. Would it be possible for an app installed on the PC to communicate with an app running in the cell phone? I just need a very simplistic data exchange, it can even be one-way (just data pushed from the cell phone to the listening app on the PC, whenever the cell phone wants, I don't need any data sent from PC to phone).

When I plug it in, the phone gives me 4 options (charge, disk drive, HTC sync, tethering), which makes me think this is not doable, but still worth the shot.

2) Would it be possible for an app on the PC to talk to an app on the phone through any other way? (Wi-fi, bluetooth, etc). I'm guessing no on wi-fi since neither party has the other's IP (and I want this to kinda just work, not having to input IPs manually all the time).

3) If I make a device that's plugged to the little USB port at the bottom of the phone (and let's say this is a magical device that can do anything, I don't quite care about those details as long as it's doable). Can I have an Android app talk to that device?

4) Any other ideas to make the phone talk to a "device" that I make, or to an app in the PC are more than welcome. Going "through the web" could be an option (although there'd have to be a central server that I own as a middle man, I believe). But i'd prefer if the communication was direct between the two devices.

Thank you very much for any ideas!
Daniel

+2  A: 

For communication via usb/wlan take a look at this project: http://code.google.com/p/android-notifier/

WarrenFaith
+2  A: 

Let's say I plug my Android to my PC. Would it be possible for an app installed on the PC to communicate with an app running in the cell phone?

Not really. There is no general-purpose channel of communication over USB.

Would it be possible for an app on the PC to talk to an app on the phone through any other way? (Wi-fi, bluetooth, etc).

Yes.

I'm guessing no on wi-fi since neither party has the other's IP (and I want this to kinda just work, not having to input IPs manually all the time).

I'm no expert on zeroconf, but that's at least conceivable for allowing your handshake sans any user input.

If I make a device that's plugged to the little USB port at the bottom of the phone...Can I have an Android app talk to that device?

Not without modifying firmware in Android, because there would be no driver. Not to mention the fact that few Android devices allow that USB port to operate in host mode.

CommonsWare
I spent like 6 months 3 years ago, trying to figure out how to connect an iPhone/other smart phone to a USB document scanner before determining that it couldn't be done. I was very annoyed...
Brian Postow
+1  A: 

If you turn on usb debugging on the phone and have something derived from the sdk's (open source) adb tool on the pc, they can communicate. The pc will have to initiate communications but within the sessions it can be mostly bidirectional or even mostly from device to pc. See developer.android.com about the adb shell and port forwarding. Root not required.

People are using bluetooth to talk to arduino embedded controllers.

With root I have made my phone act as a usb host, but it was a pain as I had to use wifi to get a debug shell since the usb was occupied.

Some phones have a low voltage serial port on an extusb connector or audio lines, but root and a level shifter would be required to use this.

Another idea I had been thinking of, doing a software modem on the headset jack, apparently has been done for both android and iphone by someone in Japan. This should not require root.

Chris Stratton
Thank you for your answer. My idea is to make this available to regular people. An app that'll be installed through the android market (at least the android side of the app). That implies no rooting, no usb debugging (i think), and nothing that my mom wouldn't be able to do. What you mention about bluetooth.... Does that imply rooting, or is it something my mom could do?
Daniel Magliola
The headphone jack idea is interesting, for sure
Daniel Magliola
Bluetooth serial (vs. earphone) may not work before a certain android version, and the hardware on the outside is expensive (like $20-30 in parts, up to $150 to get what is otherwise a $30 controller board with it integrated), but it shouldn't require root. Turning on USB debugging does not require root either, but yes, it's not for everyone. Basically you have a choice of hardware cost or user complexity.
Chris Stratton