02-19-2010 01:13 AM
Below are a bunch of questions related to determining the approximate geographical location of the user. Any thoughts or comments about any of the points/questions are welcome:
I'm looking for a way to use GPS in a way that's compatible with as many GPS-supporting BlackBerries as possible, and to be aware of which ones do not support it.
I've noticed that my carrier (Rogers) supports only Autonomous GPS mode and requires null to be passed instead of Criteria to the LocationProvider constructor. Other carriers, I believe, have their own requirements (setPDEInfo?).
It'd be nice to have GPS be as fast as possible, although if I have to live with Autonomous mode all the time to get maximum compatibility, that'd be acceptable.
In my case, accuracy is not very crucial -- the reading can be off by a whole kilometer if it needs to. Perhaps I should consider getting the ID of the cellular tower that the phone is currently connected to, and looking up its approximate GPS coordinates in a tower-to-GPS mapping table of some sort? Is it easy to make this work on absolutely any recent BlackBerry, regardless of the network (CDMA, GSM, ...)? What about getting a list of nearby cellular towers and their signal strengths and triangulating?
02-19-2010 09:19 AM
The criteria for autonomous GPS fix are 50/50 for horizontal/vertical accuracy, true or false for cost allowed, and power usages as Medium to High. I don't have my code signed yet, so I can't try this on my Bold (I use Rogers as well), but theoretically there shouldn't be an issue. As for the PDE, I think Verizon is the only company that requires a PDE (you need to purchase the PDE info as part of their developer network). Other companies have the option to utilize PDE, but it shouldn't be a prerequisite.
As for speed, the first GPS fix is the only one that should take some time using autonomous fix. If you keep the chip hot using a location listener, each subsequent fix already has acquired satellites, and shouldn't take more than a few seconds.
On a side note, Autonomous GPS fix is one of the more accurate options, but it is also the most battery intensive. Also, if GPS is the main function of your program, most recent devices should be able to use your application without much trouble. You can always test it on all of the simulators you want. Generally XX30 specifies CDMA devices, so far as I can tell.