2009-05-17 16 views
7

उपकरण/पर्यावरण .: सी ++, VS2008, WM6.1कैसे एक विंडोज़ मोबाइल सीडीएमए फोन पर मोबाइल टॉवर जानकारी प्राप्त करने के लिए

मैं वर्तमान में केवल परीक्षण के लिए एचटीसी डायमंड विंडोज मोबाइल फोन उपलब्ध है और के रूप में मैं कर सकते हैं की कोशिश, मेरे सभी हैकिंग कौशल के साथ, मैं अपने सेलुलर स्थान आधारित कार्यक्रम को पूरा करने के लिए अभी भी सेल आईडी और एलएसी के शेष विवरण प्राप्त करने का कार्य पूरा नहीं कर सकता।

मैं एमसीसी और MNC पाने में कामयाब रहे हैं, लेकिन सेल आईडी और एलएसी संख्या अब भी मेरे लिए छिपे हुए हैं। वहां इन्हें प्राप्त करने का एक तरीका बनें, क्योंकि फ़ोन स्वयं को अन्य चीजों के लिए उपयोग नहीं करता है। :/

दोहराना करने के लिए मैं क्या कोशिश की है, लेकिन यह निम्न होगा:

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+CCED=0\r" मुझे केवल '4 \ r' का असफल परिणाम मिलता है।

मैंने पढ़ा है कि आखिरी विकल्प इसकी आंतरिक मेमोरी को पढ़ना होगा। लेकिन यह एक सामान्य तरीका प्रतीत नहीं होता है जो अन्य फोन के लिए काम करेगा। और इसके अलावा, मुझे यह भी नहीं पता कि इसके साथ कहां से शुरुआत करें।

तो आखिर में मैंने इस शानदार समुदाय की मदद के लिए एक याचिका के साथ तोड़ दिया कि यदि आपने किसी भी तरह से इस फोन से यह जानकारी प्राप्त करने में कामयाब रहे हैं, तो क्या आप इसे हमारे साथ साझा कर सकते हैं?

या यदि यह असंभव है, तो क्या आप विस्तार से समझा सकते हैं कि ऐसा क्यों हो सकता है?

मैं बस इसे एक बार और सभी के लिए बंद करना चाहता हूं। :)

उत्तर

1

चेक बाहर पहले उत्तर यहाँ (मैं सिर्फ एक HTC Touch Diamond पर यह कोशिश की और यह ठीक काम किया): msdn discussion board

+0

केवल है कि एमएनसी और एमसीसी के लिए। मेरे पास पहले से ही हैं। मुझे अब एचटीसी डायमंड से सेल आईडी और एलएसी मानों की आवश्यकता है। क्या आपने उनको हासिल करने का प्रबंधन किया था? –

+0

नहीं, यह rilcelltowerinfo संरचना देता है, जिसमें एमएनसी, एमसीसी, सेल आईडी और एलएसी है, दूसरों के बीच। – hemisphire

+0

यह अजीब है तो। क्योंकि मैंने पूरे कोड की प्रतिलिपि बनाई और चिपकाया और मुझे परिणाम कॉलबैक (..) भी नहीं मिला। मेरे पास एचटीसी डायमंड (सीडीएमए संस्करण) है। क्या आपका जीएसएम संस्करण हो सकता है? पता नहीं है कि क्या मायने रखता है। –

5

तो अभी तक अधिक के आसपास खुदाई और जिद्दी "googling" के बाद, ऐसा लगता है कि मेरे फोन पर काम नहीं कर रहा मूल RIL_ * कोड के लिए कारण यह है कि मैं एक सीडीएमए (UMTS) नेटवर्क पर कर रहा हूँ है, और नहीं एक जीएसएम नेटवर्क।

जीएसएम नेटवर्क, जैसा कि मैंने सीखा, एमसीसी, एमएनसी, सेल आईडी और एलएसी के लिए मूल्य प्रदान करता है।

सीडीएमए नेटवर्क दूसरी तरफ संख्याओं का एक अलग सेट प्रदान करता है, जो BID, NID, and SID हैं।

उदा। CID -> BID, LAC -> NID, MNC -> SID, MCC -> MCC

उपरोक्त RIL_ * इंटरफ़ेस कोड लोकप्रिय है क्योंकि सीडीएमए (मुख्य अमेरिका मुख्य रूप से) की तुलना में दुनिया में अधिक जीएसएम फोन/नेटवर्क हैं।

अब बिना किसी वास्तविक जीएसएम फोन के, मैं वास्तव में RIL_ * इंटरफ़ेस कोड का परीक्षण नहीं कर सकता। WM6.1 एसडीके सेल एमुलेटर उपकरण साफ है, लेकिन इसके साथ उत्पाद को रिलीज़ करने के लिए पर्याप्त नहीं है।

यह तो मुझे एक बार फिर से बोली, NID और मेरी एचटीसी डायमंड फोन से सिड मान पुनर्प्राप्त के लिए एक रास्ता के बारे में एक मोबाइल सेलुलर विशेषज्ञ से किसी भी मदद के लिए पूछ, उम्मीद है कि वे वास्तव में सेल करने के लिए अनुवाद नहीं करते में छोड़ देता है आईडी और एलएसी।

मेरे फोन पर Google मोबाइल मैप्स किसी भी तरह से इस प्रदर्शन को करने का प्रबंधन करता है। मैं केवल अनुमान लगा सकता हूं कि सेल टॉवर जानकारी प्राप्त करने के लिए उन्हें सीडीएमए नेटवर्क पर एक रास्ता मिलना चाहिए था।

किसी भी मदद की सराहना की है। :)

+1

सीडीएमए में कोशिकाओं की अवधारणा नहीं है, यही कारण है कि आपको वह नहीं मिलता है। यह एक इलेक्ट्रॉनिक रेडियो संपत्ति है, सॉफ्टवेयर समस्या नहीं है। प्रभावी रूप से फोन फोन से एक से अधिक एंटीना पर आपके फोन को उठाया जा सकता है, और ट्रांसमिट करने के लिए अभी तक एक और सेट (1 या अधिक) का उपयोग किया जा सकता है, यही कारण है कि जीएसएम पर सीडीएमए की रेंज में सुधार हुआ है (हमारे पास ऑस्ट्रेलिया में सीडीएमए नेटवर्क हैं इसी कारण से)। मुझे लगता है कि वे जानकारी वापस नहीं लौटते क्योंकि सीडीएमए में कोई समकक्ष नहीं है, आप बस कवरेज में हैं या नहीं। – Spence

+1

कोई विचार यह है कि Google इसे कैसे करता है? वे भौगोलिक स्थान के लिए भी मेरे मोबाइल आईपी का उपयोग कर सकते हैं, लेकिन स्थान के परिणाम सिर्फ एक आईपी से बहुत सटीक लगते हैं। –

0

व्यापार एक जीएसएम संस्करण :) के लिए में अपनी सीडीएमए फोन

3

यह गूगल की तरह दिखता है वास्तव में स्थान के लिए अपने मोबाइल आईपी का उपयोग करता है, और सीडीएमए के लिए कोई समर्थन नहीं है: source

+0

यूप, उसने ऐसा किया। आपका बहुत बहुत धन्यवाद। :) –

संबंधित मुद्दे