2015-03-16 12 views
7

मैं उन का मोबाइल नंबर है, जो defaultly, उपयोगकर्ता नाम के रूप में लिया जाएगा, जब मैं मोबाइल नंबर प्राप्त करने के लिए निम्नलिखित कोड का इस्तेमाल किया प्राप्त करना चाहते हैं, इसे रिक्त स्ट्रिंग रिटर्नएंड्रॉयड getLine1Number() रिटर्न रिक्त स्ट्रिंग

TelephonyManager tMgr = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); 
      mPhoneNumber = tMgr.getLine1Number(); 
      String mobNo = mPhoneNumber.replace("+", ""); 

एक कारण मैंने पाया मेरा फ़ोन नंबरअज्ञातसेटिंग्स> के अंतर्गत इसके बारे फोन-> Status- है> SIM स्थिति है। उपयोगकर्ताओं को कोई बोझ दिए बिना इस मुद्दे को कैसे सुधारें।

enter image description here

+0

पहचान के लिए आईएमईआई नंबर का उपयोग करने पर विचार करें। – Droidman

उत्तर

1

रहे हैं कम से कम कुछ सिम कार्ड/वहाँ जो संख्या प्रदान नहीं करते ऑपरेटर्स - मैं इसे देखा है और आप इसे देखा है। शायद इसके बारे में आप कुछ भी नहीं कर सकते हैं।

+0

निश्चित रूप से, समाधान वहां होगा, क्योंकि यह ऐप डेवलपर्स की बहुत ही बुनियादी आवश्यकता है – ABI

+0

यदि यह तकनीकी रूप से संभवतः नहीं है, तो इससे कोई फर्क नहीं पड़ता कि यह "ऐप डेवलपर्स की एक बहुत ही बुनियादी आवश्यकता है"। यह कार्यक्षमता आईओएस पर भी मौजूद नहीं है, कम से कम तीसरे पक्ष के ऐप्स के लिए नहीं। डेवलपर्स को इसके साथ भी रहना होगा। – sstn

+1

व्हाट्सएप जैसे भी (बहुत लोकप्रिय) ऐप्स उपयोगकर्ता को फोन नंबर दर्ज/पुष्टि करने के लिए कहते हैं। – sstn

1

getLine1Number() दस्तावेज़ीकरण देखें। यह कहता है कि अगर यह अनुपलब्ध है, तो यह शून्य हो जाता है। तो @ एसएसएन आंशिक रूप से सही है। आप इसके बारे में अधिक नहीं कर सकते हैं। जहां तक ​​मुझे याद है कि इस विधि को सिम में संग्रहीत संख्या मिलती है। कुछ प्रदाता पहुंच प्रतिबंधित करते हैं और अन्य इसे प्रदान नहीं करते हैं।

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

यदि आप उस दर्द से गुजरना नहीं चाहते हैं, तो अंतिम विकल्प उपयोगकर्ता को इसे दर्ज करने के लिए कहना है। यदि आप इसकी वैधता के बारे में चिंतित हैं तो आप हमेशा एक बार कोड एसएमएस सत्यापन कर सकते हैं।

उम्मीद है कि यह मदद करता है।

+1

यह एक खाली स्ट्रिंग देता है, शून्य नहीं – ABI

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