2012-09-05 24 views
7

में फोन नंबरों की तुलना करना मुझे यह निर्धारित करने के लिए दो फोन नंबरों की तुलना करने की आवश्यकता है कि वे एक ही प्रेषक/रिसीवर से हैं या नहीं। उपयोगकर्ता किसी संपर्क को संदेश भेज सकता है, और वह संपर्क उत्तर दे सकता है।एंड्रॉइड

उत्तर आमतौर पर +[country-code][area-code-if-any][and-then-the-actual-number] प्रारूप में आता है। उदाहरण के लिए, श्रीलंकाई फोन नंबर के लिए +94 71 2593276

और उपयोगकर्ता संदेश भेजता है, वह आमतौर पर प्रारूप (ऊपर के उदाहरण के लिए) में प्रवेश करेंगे 0712593276 (मान वह श्रीलंका में भी है)।

तो मुझे क्या चाहिए, मुझे यह जांचना होगा कि ये दो संख्याएं समान हैं या नहीं। इस ऐप का अंतरराष्ट्रीय स्तर पर उपयोग किया जाएगा। इसलिए मैं पहले 2 अंकों को 0 के साथ प्रतिस्थापित नहीं कर सकता (फिर यह यूएस जैसे देशों के लिए एक समस्या होगी)। जावा या एंड्रॉइड में ऐसा करने का कोई तरीका है-विशेष रूप से?

धन्यवाद।

+0

फ़ोन नंबर प्रत्येक देश में लागू होने वाले सरल नियमों का पालन नहीं करते हैं। आपको प्रत्येक देश के लिए केस कोड करने की आवश्यकता होगी। –

+0

@ पीटर Lawrey यह थोड़ा चरम लगता है .. :) लेकिन यह संभव होना चाहिए। स्टॉक एंड्रॉइड मैसेजिंग ऐप के बारे में सोचें। यह पहचान जाएगा कि क्या यह वही संख्या है या नहीं, हम इसे दोनों तरीकों से दर्ज करते हैं या नहीं। – Roshnal

+0

मुझे लगता है कि इसके लिए एक लुकअप टेबल है। क्या इस ऐप के स्रोत को पढ़ने या डिकंपाइल करने के लिए वैसे भी है? –

उत्तर

2

यह जांचने के बारे में कि क्या संख्या रिसीवर की संख्या का एक सबस्ट्रिंग है?

उदाहरण के लिए, मान लें कि मेरा ब्राजीलियाई नंबर 888-777-666 है और आपका 111-222-333 है। आपको कॉल करने के लिए, यहां से, मुझे अंतर्राष्ट्रीय कॉल करने के लिए अतिरिक्त संख्याएं डायल करने की आवश्यकता है। मान लीजिए कि मैं में मैं कह सकता हूँ 9999111222333.

तो RawNumber.substring(your_number) रिटर्न true कि मैं तुम्हें फोन कर रहा हूँ, जिसके परिणामस्वरूप 9999 + your_number जोड़ने की जरूरत हैं।

-1

सिर्फ अपने तर्क लागू

public static boolean compare (String a, String b) 

नज़र में निकालने के लिए() और - और फोन नंबर का पालन करें

5

android.telephony. PhoneNumberUtils कक्षा फोन नंबर और मानकों से निपटने के लिए लगभग सभी आवश्यक कार्यों को प्रदान करती है।

अपने मामले के लिए, समाधान PhoneNumberUtils. compare(Context context, String number1, String number2) है वरना PhoneNumberUtils. compare(String number1, String number2) व्याप्ति पूर्व एक एक संसाधन की जाँच करता है निर्धारित करने के लिए ज्यादातर मामलों में एक सख्त या ढीला तुलना एल्गोरिथ्म इस प्रकार बेहतर विकल्प का उपयोग करने के लिए कि क्या,।

PhoneNumberUtils.compare("0712593276", "+94712593276") // always true 
PhoneNumberUtils.compare("0712593276", "+44712593276") // always true 

// true or false depends on the context 
PhoneNumberUtils.compare(context, "0712593276", "+94712593276") 

आधिकारिक documentation पर एक नजर डालें। और source code