2009-05-17 17 views
7

Strumenti/Env .: C++, VS2008, WM6.1Come ottenere cellulare Torre Informazioni su Windows Mobile Phone CDMA

ho attualmente solo avere il telefono HTC Diamond Windows Mobile disponibili per i test e provare come posso, con tutte le mie capacità di hacking, non riesco ancora a raggiungere il compito di acquisire i restanti dettagli di Cell ID e LAC, per completare il mio programma basato sulla localizzazione cellulare.

Sono riuscito a ottenere il MCC e MNC, ma i numeri di identificazione delle cellule e Lac vengono ancora nascosta a me. C'è deve essere un modo di ottenere questi, per il telefono stesso senza dubbio li usa per altre cose. :/

ribadire quanto ho provato, sarebbe il seguente:

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. 

provato il seguente codice di prova troppo, e niente ha funzionato.

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

Ho anche provato a inviare i comandi seriali AT per ottenere qualcosa indietro. per esempio. "AT+CCED=0\r" Viene visualizzato un risultato non riuscito di "4 \ r".

Ho letto che l'ultima opzione sarebbe quella di leggere la sua memoria interna. Ma questo non sembra essere un metodo generale che potrebbe funzionare per altri telefoni. E inoltre, non so nemmeno da dove cominciare.

Così ho finalmente rotto con una richiesta di aiuto a questa favolosa comunità in cui, se in qualche modo sei riuscito a ottenere queste informazioni da questo telefono, puoi per favore condividerlo con noi?

Oppure, se è impossibile ottenere, puoi spiegare in dettaglio perché potrebbe essere?

Voglio solo la chiusura di questo una volta per tutte. :)

risposta

1

Partenza la prima risposta qui (ho appena provato su un HTC Touch Diamond e ha funzionato bene): msdn discussion board

+0

Questo è solo per MNC e MCC. Ho già quelli. Ho bisogno dei valori ID cella e LAC ora da HTC Diamond. Sei riuscito ad acquisire quelli? –

+0

No, restituisce la struttura di rilcelltowerinfo, che ha MNC, MCC, ID cella e LAC, tra gli altri. – hemisphire

+0

Questo è strano allora. Perché ho copiato e incollato l'intero codice e non ho nemmeno ricevuto il ResultCallback (..) chiamato. Ho HTC Diamond (versione CDMA). La tua potrebbe essere la versione GSM? Non so se questo è importante. –

5

Così, dopo ancora più scavare intorno e testardo "googling", sembra che il motivo per il RIL_ * codice originale non funziona sul mio telefono è che io sono su una CDMA (UMTS) di rete, e non una rete GSM .

La rete GSM , come ho appreso, fornisce i valori del telefono per MCC, MNC, ID cella e LAC.

La rete CDMA d'altra parte fornisce un diverso insieme di numeri, che sono BID, NID, and SID.

ad es. CID -> BID, LAC -> NID, MNC -> SID, MCC -> MCC

Il codice dell'interfaccia RIL_ * sopra è popolare perché ci sono più telefoni/reti GSM nel mondo che CDMA (principalmente nel Nord America).

Ora, senza un vero telefono GSM, non riesco a testare veramente il codice dell'interfaccia RIL_ * che ho. Lo strumento Emulatore di celle SDK WM6.1 è pulito, ma non abbastanza per rilasciare un prodotto con.

Questo poi mi lascia ancora una volta chiedere alcun aiuto da un cellulare esperto di cellulari per quanto riguarda il modo di retreive il BID, NID, e valori SID dal mio HTC Diamond telefono, nella speranza che in realtà si traducono per cellulare ID e LAC.

Google Mobile Maps sul mio telefono riesce in qualche modo a realizzare questo spettacolo. Posso solo immaginare che devono aver trovato un modo nella rete CDMA per ottenere le informazioni sulla torre cellulare.

Qualsiasi aiuto è apprezzato. :)

+1

CDMA non ha un concetto di celle, motivo per cui non lo si ottiene. Questa è una proprietà di radio elettronica, non un problema di software. In effetti il ​​tuo telefono può essere rilevato su più di un'antenna dalla compagnia telefonica, e usa ancora un altro set (1 o più) da trasmettere, motivo per cui la gamma CDMA è significativamente migliorata rispetto al GSM (abbiamo reti CDMA in Australia per il stessa ragione). Immagino che non restituiscano le informazioni perché non c'è equivalente in CDMA in quanto tale, si è semplicemente in copertura o no. – Spence

+1

Qualche idea su come lo fa Google? Possono usare il mio IP mobile anche per il geolocalizzazione, ma i risultati di localizzazione sembrano troppo precisi da un semplice IP. –

0

commerciale il telefono CDMA per una versione GSM :)

3

Sembra che Google non effettivamente utilizzare il tuo IP mobile per la posizione, e non ha il supporto per CDMA: source

+0

Sì, è così. Grazie mille. :) –

Problemi correlati