工具/环境:C++,VS2008,WM6.1
我目前只有可用于测试的HTC Diamond Windows Mobile手机,并尽可能地尝试,凭借我的所有黑客实力,我仍然无法完成获取Cell ID和LAC剩余细节的任务,以完成我的基于蜂窝位置的程序.
我设法获得了MCC和MNC,但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'的失败结果.
我已经读过最后一个选项是读取它的内部存储器.但这似乎不是一种适用于其他手机的通用方法.此外,我甚至不知道从哪里开始.
所以我终于打破了请求帮助这个神话般的社区,如果你有办法从这款手机获得这些信息,你能和我们分享一下吗?
或者如果不可能得到,你能详细解释为什么会这样吗?
我只想一劳永逸地关闭这个. :)
所以经过更进一步挖掘各地和顽固"谷歌搜索",似乎为原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网络上找到一种获取蜂窝塔信息的方法.
任何帮助表示赞赏. :)
| 归档时间: |
|
| 查看次数: |
6815 次 |
| 最近记录: |