如何在Windows Mobile CDMA手机上获取Cell Tower信息

Seb*_*nik 7 windows-mobile

工具/环境:C++,VS2008,WM6.1

我目前只有可用于测试的HTC Diamond Windows Mobile手机,并尽可能地尝试,凭借我的所有黑客实力,我仍然无法完成获取Cell ID和LAC剩余细节的任务,以完成我的基于蜂窝位置的程序.

我设法获得了MCCMNC,但Cell ID和LAC号码仍然隐藏在我身上.还有必须要得到这些,本身无疑是它们用于其他事情手机的方式. :/

重申我所尝试的,它将是以下内容:

RIL_GetCellTowerInfo (g_hRIL);  // doesn't even signal the 'ResultCallback' function.

RIL_GetCurrentOperator (g_hRIL, RIL_OPFORMAT_NUM);  // calls the 'ResultCallback' function and only with this am I able to at least get the MCC and MNC.
Run Code Online (Sandbox Code Playgroud)

尝试了以下测试代码,没有任何效果.

//constants and structures for cell ID
#define RIL_DEVSPECIFICPARAM_ENABLECELLIDSUPPORT 26
#define RIL_DEVSPECIFICPARAM_DISABLECELLIDSUPPORT 27

bool mode = true;
DWORD dwFuncID=0;

if (mode)
  dwFuncID = RIL_DEVSPECIFICPARAM_ENABLECELLIDSUPPORT;
else
  dwFuncID = RIL_DEVSPECIFICPARAM_DISABLECELLIDSUPPORT;

m_hrCellIdRequest_ = RIL_DevSpecific (g_hRIL,(LPBYTE) &dwFuncID, sizeof(DWORD));

//  no 'ResultCallback' triggered either.


BYTE req[4]= {24, 0, 0, 0};
m_hrCellIdRequest_ = RIL_DevSpecific (g_hRIL, req, 4);
req[0]=26;
m_hrCellIdRequest_ = RIL_DevSpecific (g_hRIL, req, 4);
Run Code Online (Sandbox Code Playgroud)

我甚至尝试发送串行AT命令来取回一些东西.例如. "AT+CCED=0\r" 我只得到'4\r'的失败结果.

我已经读过最后一个选项是读取它的内部存储器.但这似乎不是一种适用于其他手机的通用方法.此外,我甚至不知道从哪里开始.

所以我终于打破了请求帮助这个神话般的社区,如果你有办法从这款手机获得这些信息,你能和我们分享一下吗?

或者如果不可能得到,你能详细解释为什么会这样吗?

我只想一劳永逸地关闭这个. :)

Seb*_*nik 5

所以经过更进一步挖掘各地和顽固"谷歌搜索",似乎为原RIL_的理由*代码不是我的手机上的工作是,我是一个对CDMA(UMTS)网络,而不是一个GSM网络.

据我所知,GSM网络为手机提供了MCC,MNC,小区ID和LAC的值.

另一方面,CDMA网络提供一组不同的数字,它们是BID,NID和SID.

例如CID - > BID,LAC - > NID,MNC - > SID,MCC - > MCC

上述RIL_*接口代码很受欢迎,因为世界上有比GSM(主要是北美)更多的GSM电话/网络.

现在没有真正的GSM手机,我无法真正测试我的RIL_*接口代码.WM6.1 SDK Cell Emulator工具很整洁,但还不足以发布产品.

这让我再次向移动蜂窝专家寻求关于从我的HTC Diamond手机中检索BID,NID和SID值的方法的任何帮助,希望它们确实转换为Cell ID和LAC.

我的手机上的谷歌手机地图以某种方式设法实现这一壮观.我只能猜测他们必须在CDMA网络上找到一种获取蜂窝塔信息的方法.

任何帮助表示赞赏. :)


hem*_*ire 1

在这里查看第一个答案(我刚刚在 HTC Touch Diamond 上尝试过,效果很好): msdn 讨论板