2011-02-11 21 views
7

मैं डिवाइस में डाले गए सिम का मोबाइल नंबर प्राप्त करना चाहता हूं। मुझे पता है कि एंड्रॉइड एसडीके TelephoneManger वह वर्ग है जिसके द्वारा हम इसे getLine1Number() विधि से प्राप्त कर सकते हैं। लेकिन यह हमेशा शून्य मान देता है।वास्तविक डिवाइस से मोबाइल नंबर प्राप्त करें

क्वेरी:

  • मैं डिवाइस से मोबाइल नंबर मिल सकता है?
  • क्या यह एक सिम निर्भर है या कुछ मामलों में डिवाइस भी निर्भर है?
  • डिवाइस से मोबाइल नंबर प्राप्त करने के किसी भी अन्य तरीके?

उत्तर

1

आपको this question और इसकी टिप्पणियां देखना चाहिए।

कुछ सिम कार्ड्स getLine1Number() को शून्य वापस करने का कारण बनते हैं ... और किसी को भी इससे निपटने का कोई तरीका नहीं मिला है।

More information here

+1

किसी को भी रास्ता नहीं मिला है, क्योंकि उस मामले में सिम पर संख्या मौजूद नहीं है। – Zelimir

3

आप सही और केवल दृष्टिकोण सामान्य उपयोगकर्ता (AFAIK) के लिए उपलब्ध का उपयोग कर रहे हैं। यह मुख्य रूप से सिम निर्भर है (यह अनिवार्य नहीं है), और कुछ मामलों में डिवाइस निर्भर हो सकता है (getLine1Number() सही ढंग से लागू नहीं किया गया है)।

अधिक सटीक होने के लिए, आईएमएसआई विशिष्ट रूप से सिम की पहचान करता है। लेकिन एमएसआईएसडीएन (ग्राहक संख्या) सिम से विशिष्ट रूप से संबंधित नहीं है, क्योंकि सिम पर एमएसआईएसडीएन को बदलना संभव है। एचएलआर में एमएसआईएसडीएन खोजने और कॉल स्थापित करने के लिए नेटवर्क सिम से आईएमएसआई का उपयोग कर सकता है।

तो, एमएसआईएसडीएन सिम पर होना अनिवार्य नहीं है।

1

उस स्थिति में आप हमेशा getLine1Number() विधि विधि का उपयोग करके साझा फ़ोन संदर्भ का उपयोग करके अपने फोन को सहेजते हैं। जब आप अपना आवेदन इंस्टॉल करते हैं तो आपका फोन नंबर स्वर्ग होता है और जब नया सिम कार्ड उपयोग किया जाता है तो अपने पंजीकृत नंबर पर एसएमएस भेजें। आपको हमेशा आवेदन शुरू करने के बाद जांच करनी होगी कि आपका संग्रहित नंबर आपके नए नंबर के साथ समान है। अगर कुछ भी नहीं होगा, तो ऐसा नहीं होगा, तो आपका ऐप एसएमएस भेजेगा।

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