Android-2-Android Communication - Android Software Development

We currently have an app that runs on an Android phones, for a small company of property appraisers. It includes a map of properties, a property information form, and a camera.
It works great, although the display is too small for effective mapping. For that reason, we've purchased Viewsonic gTablets and we've built the map feature onto those, leaving the Android phone to handle the camera and property input.
The problem? How to get the two talking!
Originally we built a bluetooth app to allow the two to exchange simple data. That works fine; however, we run into one problem: using the Google Maps API requires Internet connectivity (the gTablet has no Internet connectivity, as is).
The problem is that I'd prefer not to rely on wifi (which would require the phone to offer the tether, and the gTablet to run wifi at all times). Bluetooth is much more controllable.
I thought I would propose the question to the experts here. How would you handle an application written over two Androids, where one (the tablet) needs to proxy the map-requests through the other (the phone)?
Thank you in advance for ANY ideas!
RKM

Related

Pocket PC Router Application?

(I moved this out of the widcomm bt stack post)
How hard would it be, to write a semi-universal application for the WinCE environment, to simply emulate a router? I know a little C/C++, but nothing else. I say bypass this BT garbage.
What you would need hardware wise IMO,
Have GRPS/EDGE or some other true 3G data connection... and 802.11b or g, with a chipset that can go into AP mode (which I think I read that the wizard's chip technically can, and same with the H6315 25 45 models).
Then enough ram and CPU left over to do basic routing and DHCP to any clients around you. Viola, handheld, portable router all in one! It would sell like hotcakes, especially for some of our companies events (outdoor sports promotions). It would also make it very universal, at least to clients, if not a couple PPC servers with the right hardware.
I really really hate bluetooth. The ONLY bt devices that have not given me much grief, is an old Jabra Bt200 headset, and an altina USB GPS mouse (with iguidance mapping software). I have had 3 sets/brands of A2DP headsets, another USB mouse that never worked right, numerous dongles to numerous PC builds to share different things... all worked not at all or mediocrely at best. I have also owned an Axim X50, and and X5 (with CF bluetooth).
There is no standard interface, or guarantee with bt, it's just mostly bad luck and voodoo out of the box, and the company hoping you will forget to return their "best effort" product. I don't blame them. I blame widcomm, broadcom, and MS, for their stupid BT stacks, with separate capabilities, millions of version/build numbers, license issues, and general apathy for creating a solid standard product. In a way, MS tries to do this... by cutting out 90% of BT proported features it seems LOL!. If I wanted diversity (aka headaches) in something computer related, It would not be BT, it would be Linux, which somehow works most of the time, and if not, you can make it work... because it's OPEN. Dumb dll's.
This is worse than IRQ conflicts with ISA cards back in the early 90's. Then plug and pray came to save us... and it took like 6 years! How long has BT been out?
Werner, I've read about your PPC proxy thing, but I would like to use more than just HTTP proxy, I need to be able to orb, and try other things.
Thanks for the info new2city! (from old post)
So who remembers this? (I'm showing my age huh lol)
+++ATH0
NO CARRIER
This sounds like a very interesting idea. You may not even need a 802.11x chip that can do AP mode. As long as it can do ad-hoc, you should be able to do something simmlar to ICS in desktop windows.
Great news! Hope you do manage to do it!
I'm thinking it would be pretty hard to do or else someone would have done it already.
I had the same idea myself a while ago but as I have no PPC programming experiance I just let it go.

Bluetooth vulnerability.....Be careful!!

Guys/Gals....
I might be slow to know about this, so I figured some others here might be too. No disrespect intended, but I watched a program this weekend 'The Real Hustle' on British TV. It explored a serious vulnerability in the Bluetooth technology.
Apparently there exists software which can be installed on O/S based Mobile phones/PPC's that allow its user to scan for BT devices i.e. in busy areas like train stations etc.
They can then hijack your phone..'Without Your Knowledge'!! They can then use your available credit/contract minutes, to make calls to a purpose made premium number @ £1.50 per minute....all without leaving a trace on your phone!
You won't know until you get your whopping bill and will have no way out of paying for it, as calls will have registered as having been made from your phone!
Bottom line for Athena users with BT earpieces and other people too. ONLY switch your BT on when you are going to use it and be sure to switch it right back off when you're finished.
The program did not reveal whether this was possible if the devices/BT mode was set to invisible, but that is something I intend to find out.
Scary eh?
P.S. Something like this happened to a relative of mine only last week as his BT is always on (for phone calls). Just thought I'd share my concerns with you. Sorry if its old news already.
Yup, old news I'm afriad. The Ameo AFAIK and can test, seems to have a fairly sturdy bluetooth stack, as do most phones from the last 18months - 2years. But it is quite surprising how many phones are vulnerable to various bluetooth exploits. I have found that its not impossible to crash the BT stack, but its not trivial, and doesn't really seem to do too much damage, apart from requiring a restart of the BT module. Unlike my old T68 which locks up tighter than a locked up tight thing, gives out my contacts and calendar, make calls e.t.c.
Oh, and I generally leave the BT off on the Ameo because its such a battery drain.
Digital.Diablo said:
Yup, old news I'm afriad. The Ameo AFAIK and can test, seems to have a fairly sturdy bluetooth stack, as do most phones from the last 18months - 2years. But it is quite surprising how many phones are vulnerable to various bluetooth exploits. I have found that its not impossible to crash the BT stack, but its not trivial, and doesn't really seem to do too much damage, apart from requiring a restart of the BT module. Unlike my old T68 which locks up tighter than a locked up tight thing, gives out my contacts and calendar, make calls e.t.c.
Oh, and I generally leave the BT off on the Ameo because its such a battery drain.
Click to expand...
Click to collapse
Thanks for that Diablo. So what you are saying is that newer devices (like our) with newer BT stacks are NOT vulnerable to these attacks? Only the older types of mobile phones?
Is the hidden option didn't make any difference?
I have tested a couple of "available" software.
Generally it is quite trivial to establish a connection with older mobiles phones. SonyEricssons seem to be particularly vulnerable.
I haven't been able to successfully intercept the Athena though. Although I have many shortcomings in my very limited abilities... I'm sure a dedicated person would be able to intercept and <do whatever> given enough time.
Normally it should be enough to enable "Beam authentication" and uncheck "Make this device visible to other devices".
mackaby007 said:
Thanks for that Diablo. So what you are saying is that newer devices (like our) with newer BT stacks are NOT vulnerable to these attacks? Only the older types of mobile phones?
Click to expand...
Click to collapse
I wouldn't go as far as to say they're invulnerable, however they're stronger than other targets. Bluetooth in itself is quite basic in its security mechanisms, but Ameo stands up well to attack. As mentioned, its possible to crash the stack, but this doesn't bring any benefit to the attacker, apart from the knowledge that they've been able to do that. I suppose it could be used as a buffer overflow exploit, but with so few devices around, its probably not worth the effort to try.
One thing TO be aware of though is that when pairing a device, its possible for a 3rd party to grab the keys off the air, and then you can impersonate a bluetooth device. So if someone were to capture a key pairing between a mobile and a laptop for the laptop to be able to make internet connections via the phone, then you could impersonate the laptop to make these calls. But this is fairly unlikely if the phones are already paired. However, the cool thing is, if you've got a vulnerable phone, you can make it loose the pair key, when Mr End User resync's the phone, snap it out of the air and do naughty things. I work in Network Security so I try and experiment with these things for the good of our staff, and bluetooth hacking is one of the cooler things IMO.
Oh, another cool point is that people think bluetooth is 10m or 100m radius. Some researchers have managed to send a bluetooth message about 3km (I think).
And finally, the other thing you can do to really bug someone is repeatedly make bluetooth requests to their phone for 'services available'. Most phones will provide this without pairing, and in doing so, it can generally cause the power consumption to increase. Once again, I killed my T68 with this technique in about 2hrs from full charge, as each time it made the request, the screen redrew, the backlight and key led's came on and I suspect the radio power draw increased.
WM5 and espicially 6 are practically safe
Done a bit of research on this now and coupled with your feedback guys, I feel Athena owners are pretty safe from random attacks. Thanks a bunch for putting my mind at ease...I will however remain cautious in public areas and turn my bluetooth off if I am spending a considerable amount of time there.
The fact is that the only way this vulnerability works is by exploiting the Symbian Bluetooth stack for now. Conversely, WM is one of the more secure O/S's out there at present. WM6 is even more so. There's a lot of snakeoil within the industry, although with the Ameo, I would look into getting AV if you plan on doing a lot of downloading off the web. Yes, there is no serious malware for the WM platform, but the device can still be a carrier for the host Windows systems. As HSDPA becomes more widespread, the benefits fo attacking these platforms becomes greater; it's not there yet but will become an issue.
mackaby007 said:
Done a bit of research on this now and coupled with your feedback guys, I feel Athena owners are pretty safe from random attacks. Thanks a bunch for putting my mind at ease...I will however remain cautious in public areas and turn my bluetooth off if I am spending a considerable amount of time there.
Click to expand...
Click to collapse
It should* be enough to disable visibility. If need BT for your headset but care about battery drain just enable powersafe mode for the audio gateway in the registry.
I'm running bluetooth all the time on my ameo. I'm around a lot on public areas like train stations and airports and every now and then I'm using btCrawler to scan for other devices just to see how many are in visibile mode.
So the best practicefor using bluetooth (on laptops, handhelds or whatever) is:
- Turn off visibility
- Use encryption AND authentication for every connection
- Don't accept messages or transfers from unknown devices
- Don't use easy PINs like 0000 or 1234
- Use different PINs for every connection
If you follow the above, using bluetooth should* be safe
* Should, because if an attacker knows your device address, he's still able to try to attack you directly. There is an interesting article by Max Moser about using the expensive (but excellent) Bluetooth Diagnostic Tool from Fronline (FTS4BT) with a normal inexpensive bluetooth dongle. Using this you are able to sniff bluetooth connections by following the hopping sequence. You can sniff audio connections, data transfers, etc. If no encryption is enabled everthing is tranfered in plaintext. However it is still possible to decrypt encrypted BT traffic if you are able to sniff the pairing process. If you have successfully sniffed the whole pairing process you can extract the link key and PIN with btcrack and then use the frontline sniffer to decrypt the traffic.

Bluetooth Quick Connect / Favorites Today Plugin and/or Command-line app

I'm a Desktop .Net developer with NO bluetooth experience and only a bit of low-level networking experience so I'm speaking from limited knowledge, but not complete ignorance.
I use my phone as an A2DP source and AVRCP client for quite a few devices (Jabra JX20 Pura, Jabra BT3030, Windows Vista, various BT speaker systems) and Alpine BT300) around my house, garage, car, and on the go. They all work wonderfully (some have better range than others, some better sound), but using any of them presents a couple common issues.
Some devices (like my car), constantly seek out the last paired device until they connect, while most of the other require a connection to be initiated from the phone. The phone doesn't care which is around or has the best signal, just which one successfully connects first.
I'd like an app that could have profiles setup which would let me control certain variables OR at a more basic function (see below):
Bluetooth Profile
Device Priority
Minimum Strength (to be used when more than one device has the same priority)
That would be my ultimate goal, but in the meantime I'd be happy with something as simple as a command line app that could be bound to a key or shortcut which would try to connect to a predefined list of BT MACs for a given profile and stop when the first one connects successfully. Variations on this might allow a connection attempt to a specific device instead of a list. This way I could have StartMenu or Today shortcuts.
The point here is largely to have to avoid nagivigating all the menus needed to initiate an A2DP connection, but I'm sure there are MANY other uses people would find.
If someone could point me in the right direction (I'm researching already of course) to the namespace(s) and or class(es) in .Net 2 or newer which would allow me to enumerate and/or initiate connections, this may be something I could bring to the community (assuming it doesn't already exist, and I have asked MANY times).
I've created a poll also to see what kind of interest is out there for this software and how much support I might receive.
I've been knocking an app up to suit my own personal A2DP needs... and a lot of yours by the look of things ;-) Things it does:
Kinetic scrolling finger friendly list of A2DP devices known to your phone (tap to select then tap again to attempt connection).
Toolbar buttons indicating active A2DP connection status (tap to disconnect active connection).
Bluetooth devices applet shortcut.
Switch bluetooth on (a good few of my devices need the phone to be discoverable so the app forces the phone to be discoverable at all times *blush*).
Switch bluetooth off.
Shortcut to program launcher list (automatically displays this list when you initiate a connection to a selected device... and there's items to display in the list of course).
Command line access (via secondary exe) allowing you to attempt connection (to a named , the last connected or first found device) and disconnect an active A2DP connection. I've only really tested the named device connection but the other 2 modes *should* work
QVGA / VGA and orientation aware.
I've been wanting to work towards getting it up on XDA... but time constraints (and a baby on the way ) have gotten in the way and it's unlikely I'll have the time to do it for a good while. I'd be happy to pass on the code to someone willing to take it further if that's any use. It's written (very quickly!) in VB.net BTW.
It uses a few bits and bobs from other people though:
A2DPToggle's "a2dp.exe" to handle initiating a connection.
Icons from lord only knows where I found them.
The kinetic list code found on here (http://forum.xda-developers.com/showthread.php?t=333124&highlight=klist). IIRC, I used the gingercat updated version and tweaked it to my own needs. There's many a kludge I've put in to the code to get things working quick-smart (D-Pad navigation mainly).
InTheHand 32feet.NET libraries (http://inthehand.com/content/32feet.aspx). These work with MS Bluetooth stack only.
So permission from the respective folks above would be needed before releasing it into the wild I guess.
Here's a screeny
Hey great tool! When I click a device will it auto connect or only open the BT Explorer and will it work with Broadcom BT Stack? Thanks
Oops, meant to say it's been developed for the MS bluetooth stack only. Sorry about that.
When you attempt to connect to a device it first checks the device is reachable and only then attempts to initiate an A2DP connection.
Northernmost said:
I've been knocking an app up to suit my own personal A2DP needs... and a lot of yours by the look of things ;-) Things it does:
Click to expand...
Click to collapse
Absolutely. I can get around in VB.Net and C# just fine. If you don't want to publish the code publicly, PM me your email address and I'll invite you to my Sharepoint site (easiest way I know to share files and manage communique), otherwise attach here.
It sounds like you've already covered 99% of what I was looking for, but I'd be more than happy to do what I can to more the idea forward, even taking suggestions from others in this thread.
About the BT stack, I'm running a Vogue with a ROM cooked in PPCKitchen, how do I determine which stack I'm running and can that be changed?
rainabba said:
About the BT stack, I'm running a Vogue with a ROM cooked in PPCKitchen, how do I determine which stack I'm running and can that be changed?
Click to expand...
Click to collapse
I've no idea what stack Vogues come with but the MS stack device list looks like the attachment below. If yours looks the same it's the MS one. I guess the Vogue forum should have any info on swapping stacks if it's possible.
Sounds like I found the correct people to answer my question about BT. Is there a way / how can I: enable my Mogul 6800 phone to transmit the sound that would normally go through the speaker to my BT headset in order to listen to streaming audio from the net using Kinoma Play which goes out and picks up all sorts of "radio programs" , i.e. not using a direct URL. I am also not able to listen to audio files from the Audio Recorder through anything except the speaker, even not through a head phone. Do I need to download a program or set up my phone differently. I currently have Titan WM6.1 Build 20755 GPS kitchen from PPC Geeks. Thanks so much for your help.
jminor4326 said:
Sounds like I found the correct people to answer my question about BT. Is there a way / how can I: enable my Mogul 6800 phone to transmit the sound that would normally go through the speaker to my BT headset in order to listen to streaming audio from the net using Kinoma Play which goes out and picks up all sorts of "radio programs" , i.e. not using a direct URL. I am also not able to listen to audio files from the Audio Recorder through anything except the speaker, even not through a head phone. Do I need to download a program or set up my phone differently. I currently have Titan WM6.1 Build 20755 GPS kitchen from PPC Geeks. Thanks so much for your help.
Click to expand...
Click to collapse
You need an A2DP capable device (high quality), connected, THEN start your audio program OR use a program called Audio Gateway with a basic Bluetooth headset (low quality audio).
thank you very much.
Northernmost, how about that source code? If you want to pass it along less privately than a post here, PM me and I'll provide a solution (source control, WSS, etc.)
Sent you a PM the other day. Let's go the private way for now.

I need some help with bluetooth, some pointers would be awesome.

Basic introduction:
Me and a team of two other fellows are trying to develop a cool android application for a school assignment. We are focusing on Android v2.2+, and all have either a Droid Incredible or the Evo 4G.
The guts:
We'll be dealing with a few bits of hardware on the android side: the bluetooth radio, the camera, and the microphone.
The glory:
Our objective is that we're trying to use a phone's bluetooth connection and a computer's bluetooth connection to create a pairing of the two devices, and then have Windows recognize the phone as being an input microphone and video camera.
The question:
So far we have an android application that turns on the phone's bluetooth and initiates a camera preview. However, at this point we're kinda at a fork in the road... I have never dealt with anything like bluetooth before, and I've never programmed for android before.
I'm asking for some pointers and / or a focus point here. Unfortunately for our program already being so basic, we already aren't exactly sure of where to go from here. I typically find the android documentation to be way over elaborate with techspeak and under par with examples.
You can view all of our current code on our google code page: http://code.google.com/p/red-dragon/ (the name of our team is a bit of an inside joke )
Thanks a bunch guys!

[Q] BT Serial Port SPP (rfcomm) maybe someday?

I can't post this in development because I an still a nobody ...
Would it be possible to add in rfcomm for Bluetooth SPP serial port? The Nook would make a great tablet for telescope mount control over BT. You can't do it with the iPad due to the security around the BT stacks. It would also allow NEMA GPS modules to be read for different applications.
I'm running CM7 7.0.2 and this isn't yet available.
Just a dream?
Not sure if this is what you're talking about, but you can send the GPS data to the Nook form a GPS device like a Cell phone or GPS receiver. I use a stand alone GPS receiver and sometimes my Droid cell phone to send my location to the Nook to use CoPilot and Google Maps on the Nook. That's at least half of what you're talking about right?
Calla969 said:
Not sure if this is what you're talking about, but you can send the GPS data to the Nook form a GPS device like a Cell phone or GPS receiver. I use a stand alone GPS receiver and sometimes my Droid cell phone to send my location to the Nook to use CoPilot and Google Maps on the Nook. That's at least half of what you're talking about right?
Click to expand...
Click to collapse
Hmm, you got me pondering...
I got out my trusty Garmin GPS 10 and I can pair but it's not connected. That could be for a couple of reasons (the Nook only connects on demand maybe.) But if what you are saying is correct, maybe it does support SPP since it uses a comm port for the GPS.
But, when I connected from my notebook and checked the services, SPP wasn't one of them (just OPEX and AD2P.) I will keep playing but I half expect that part of the SPP stack requirements are missing.
On the plus side, if the GPS will work too, that is a second plus since it's nice to be able to ask the GPS for the specific time and location during the telescope setup (it matters.)
I'll look for an app in the Market that might read an external GPS devices and show the location. I notice most apps are for reading the phone GPS (which we don't have.)
Thanks!
Android does not support SPP, but there are multiple apps in the market which do, Bluetooth GPS Provider is the one which I prefer as it works very well and just works no matter what.
Thanks folks,
I fired up the Garmin GPS 10 and it works using Bluetooth GPS. That means an application can add in the SPP. That is perfect and gives us hope!
I really appreciate the responses!
Awats said:
Thanks folks,
I fired up the Garmin GPS 10 and it works using Bluetooth GPS. That means an application can add in the SPP. That is perfect and gives us hope!
I really appreciate the responses!
Click to expand...
Click to collapse
Yes, apps can directly talk with a Blutooth GPS. There are a handful which do this, or again, Bluetooth GPS Provider will provide the BT GPS to every app that asks for GPS.
This isn't only about GPS. GPS is just one aspect. I want to communicate with any serial device over BT. My understanding from reading it that rfcomm and the applications can supply that function.
What I did notice last night is that even without an application that supplies rfcomm, the Nook would still discover the devices unlike the iPad. I could pair to pretty much anything I wanted but it wouldn't connect. That's normal from my perspective.
At least I know it can be made to work.
khaytsus said:
Android does not support SPP...
Click to expand...
Click to collapse
Well, the XOOM does at least. Not sure whether it was Motorola's or Google's doing though. I use a Bluetooth to Serial adapter from Roving Networks quite successfully with it. I'm unaware of any other devices that do it.
I agree that native Android doesn't support SPP but the rfcomm library does and if it's linked into the application, SPP works.
Now if I can only find a way to use VNC to control my PPC from the Nook without going through a remote server (maybe via adhoc or BT ...)
Any device at API level 5 (2.0) or above may support BluetoothSocket, RFCOMM and therefore SPP unless the OEM did something to screw it up.

Categories

Resources