View Full Version : How to get Cell Tower Info on a Windows Mobile CDMA Phone
sedwo
25th May 2009, 01:42 AM
Tools/Env.: C++, VS2008, WM6.1
I currently only have the HTC Diamond Windows Mobile CDMA (Telus) phone available for testing and try as I may, with all of my hacking prowess, I still cannot accomplish the task of acquiring the remaining details of Cell ID and LAC, to complete my cellular location based program.
I have managed to get the MCC and MNC, but the Cell ID and LAC numbers are still hidden to me. There must be a way of getting these, for the phone itself no doubt uses them for other things. :confused:
To save time and bandwidth, I have asked this same question (http://stackoverflow.com/questions/873902/how-to-get-cell-tower-info-on-a-windows-mobile-cdma-phone), with more details on StackOverflow.com as well, so I please urge you to reference that post (http://stackoverflow.com/questions/873902/how-to-get-cell-tower-info-on-a-windows-mobile-cdma-phone) for added information that you might find valuable, as well as helpful.
Any input would be greatly appreciated. You can answer here or on Stackoverflow.com. I'm just out of ideas after two (2) full weeks of cracking my head on this and trying every sliver of code snippets out there. :(
DRZ400
25th May 2009, 06:39 PM
Hi, I've only every done this in c# but I presume it must be roughly the same in c++. Have a look at "RILCELLTOWERINFO".
public class RILCELLTOWERINFO
{
public uint cbSize;
public uint dwParams;
public uint dwMobileCountryCode;
public uint dwMobileNetworkCode;
public uint dwLocationAreaCode;
public uint dwCellID;
public uint dwBaseStationID;
public uint dwBroadcastControlChannel;
public uint dwRxLevel;
public uint dwRxLevelFull;
public uint dwRxLevelSub;
public uint dwRxQuality;
public uint dwRxQualityFull;
public uint dwRxQualitySub;
public uint dwIdleTimeSlot;
public uint dwTimingAdvance;
public uint dwGPRSCellID;
public uint dwGPRSBaseStationID;
public uint dwNumBCCH;
}
This is my app I wrote for Ericsson running on a HTC Diamond, works on both GSM and UMTS.
http://i140.photobucket.com/albums/r19/JetJunkie/SiteMaster.jpg
The above WAS my answer as I presumed CDMA MUST be the same then I started reading that others have the same problem as you.
It MUST be available .... does the google maps mobile thingy work with your gps off?
DRZ400
25th May 2009, 07:10 PM
I should have read the posts you referred to before I answered. :(
Google Mobile Maps on my phone somehow manages to perform this spectacle. I can only guess they must have found a way on the CDMA network to get the cell tower info.
sedwo
26th May 2009, 03:08 AM
Challenging isn't it.
Thanks for your feedback anyway. :)
Hemant
26th May 2009, 04:25 AM
Hi, I've only every done this in c# but I presume it must be roughly the same in c++. Have a look at "RILCELLTOWERINFO".
public class RILCELLTOWERINFO
{
public uint cbSize;
public uint dwParams;
public uint dwMobileCountryCode;
public uint dwMobileNetworkCode;
public uint dwLocationAreaCode;
public uint dwCellID;
public uint dwBaseStationID;
public uint dwBroadcastControlChannel;
public uint dwRxLevel;
public uint dwRxLevelFull;
public uint dwRxLevelSub;
public uint dwRxQuality;
public uint dwRxQualityFull;
public uint dwRxQualitySub;
public uint dwIdleTimeSlot;
public uint dwTimingAdvance;
public uint dwGPRSCellID;
public uint dwGPRSBaseStationID;
public uint dwNumBCCH;
}
This is my app I wrote for Ericsson running on a HTC Diamond, works on both GSM and UMTS.
http://i140.photobucket.com/albums/r19/JetJunkie/SiteMaster.jpg
The above WAS my answer as I presumed CDMA MUST be the same then I started reading that others have the same problem as you.
It MUST be available .... does the google maps mobile thingy work with your gps off?
Could yu please upload your cab as even though i have learnt programming but that was back in 2000 and now i am not in programming business anymore. So your help would be appreciated.
DRZ400
26th May 2009, 02:50 PM
Could yu please upload your cab as even though i have learnt programming but that was back in 2000 and now i am not in programming business anymore. So your help would be appreciated.
Hi, It's heavily reliant on an underlying database that you can only get if you work for a phone company as it details all the site data and locations. If you can get that I'll send it to you.:D
DRZ400
26th May 2009, 03:46 PM
Challenging isn't it.
Thanks for your feedback anyway. :)
I've spent about an hour looking round the web and it's apparent many have tried and all have failed. :(
http://forum.xda-developers.com/archive/index.php/t-450592.html
Sadly I don't know enough about CDMA to help. If I were you, I'd start a cheeky topic on the Google Mobile Maps help forum and ask them how they do it on CDMA. It's obviously possible.... somehow.
All I can say is I'm glad I live in the UK!
DRZ400
26th May 2009, 06:09 PM
I've had a flash of inspiration.
In \internal storage\windows\ there's a application called 'Fieldtest', I think its standard on all HTC phones. It should give you a starting point of what's available to you.
A good thread of how it works can be found in THIS THREAD (http://forum.xda-developers.com/showthread.php?t=286779)
I've also seen a few people have reverse engineered it. :)
sedwo
27th May 2009, 04:35 AM
Interesting. Thanks.
I just might ask the Google guys. ;)
ghostinak
30th July 2009, 11:57 PM
I have used a standard call to RIL_GetCellTowerInfo() on an AT&T CDMA phone (AT&T Fuze), and it appears to get a cell id, lac, mnc, and mcc just fine.
Be aware that the RIL.dll is implemented by tthe OEM and certain parts are comepletely optional.. they do not have to implement some things. Check dwParam on your callback to see what info is supposed to be populated by the driver.
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc.