Как получить информацию о сотовой вышке на телефоне с Windows Mobile CDMA - PullRequest
7 голосов
/ 17 мая 2009

Инструменты / Окр .: 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.

Пробовал также следующий тестовый код, но ничего не получалось.

//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);

Я даже попытался отправить последовательные AT-команды, чтобы получить что-то обратно. например. "AT+CCED=0\r" Я получаю только неудачный результат '4 \ r'.

Я прочитал, что последний вариант будет читать его внутреннюю память. Но это не похоже на общий метод, который бы работал для других телефонов. И кроме того, я даже не знаю, с чего начать.

Так что я, наконец, расстался с просьбой о помощи этому сказочному сообществу в том, что если вам каким-то образом удалось получить эту информацию с этого телефона, не могли бы вы поделиться ею с нами?

Или, если получить невозможно, вы можете подробно объяснить, почему это может быть?

Я просто хочу закрыть это раз и навсегда. :)

Ответы [ 4 ]

5 голосов
/ 20 мая 2009

Таким образом, после еще более копаться и упрямый «прибегая к помощи», кажется, что причина для оригинального RIL_ * Код не работает на моем телефоне, что я нахожусь на CDMA (UMTS) сеть, и не a GSM сеть.

Сеть GSM , как я узнал, предоставляет телефону значения MCC, MNC, Cell ID и LAC.

Сеть CDMA , с другой стороны, предоставляет другой набор номеров, которые BID, NID и SID .

например. CID -> BID, LAC -> NID, MNC -> SID, MCC -> MCC

Приведенный выше код интерфейса RIL_ * популярен, потому что в мире больше телефонов / сетей GSM, чем CDMA (в основном в Северной Америке).

Теперь, когда у меня нет настоящего телефона GSM, я не могу проверить код интерфейса RIL_ *, который у меня есть. Инструмент WM6.1 SDK Cell Emulator очень удобен, но его недостаточно для выпуска продукта с.

После этого у меня снова остается запросить любую помощь у эксперта по сотовой связи в отношении способа получения значений BID, NID и SID с моего телефона HTC Diamond в надежде, что они действительно это сделают. перевести на Cell ID и LAC.

Google Mobile Maps на моем телефоне каким-то образом удается выполнить это зрелище. Я могу только догадываться, что они, должно быть, нашли способ в сети CDMA получить информацию о вышке сотовой связи.

Любая помощь приветствуется. :)

3 голосов
/ 03 июня 2009

Похоже, Google действительно использует ваш мобильный IP для определения местоположения и не поддерживает CDMA: источник

1 голос
/ 19 мая 2009

Проверьте первый ответ здесь (я только что попробовал его на HTC Touch Diamond, и он работал нормально): msdn доска обсуждений

0 голосов
/ 27 мая 2009

Поменяйте телефон CDMA на версию GSM:)

...