2009-04-14 14 views
6

पहली बार पोस्टर के साथ कई एंड्रॉइड अनुकरणकर्ताओं को चला रहा है।विभिन्न फोन नंबर

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

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

उत्तर

5

android_id विशिष्ट डिवाइस की पहचान माना जाता है, तथापि, यह उल्लेख किया गया है कि आईडी बदला जा सकता है अगर आप जानते हैं कैसे Spoofing android_id

import android.provider.Settings.System; 

String android_id = System.getString(this.getContentResolver(), System.ANDROID_ID); 

एमुलेटर में, android_id एक मूल्य नहीं है, तो आपको खुद को एक मान असाइन करने के लिए एक डिबगिंग दिनचर्या डालना होगा।

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

+0

धन्यवाद, एंड्रॉइड_आईड जो कुछ मैं ढूंढ रहा था वह था। हालांकि आपके बाकी उत्तर पढ़ने और इसके बारे में और सोचने के बाद मुझे एहसास हुआ कि मैं सेवा को सख्ती से एक डिवाइस से जोड़ना नहीं चाहता हूं। – Janne

+0

अब इसे बहिष्कृत किया गया है और आप सेटिंग में परिभाषित ANDROID_ID का उपयोग कर सकते हैं। सुरक्षित: स्ट्रिंग आईडी = System.getString (this.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); – Gaket

3

आपको एमुलेटर द्वारा मौजूद संख्या का उपयोग करना चाहिए। उदाहरण के लिए। आमतौर पर चलने वाला पहला एमुलेटर संख्या 5554, दूसरा 5555 है, और इसी तरह।

आप कॉल करने के लिए इन नंबरों का उपयोग कर सकते हैं, एम्यूलेटर से एम्यूलेटर से टेक्स्ट संदेश भेज सकते हैं। यह, मुझे लगता है, आपके उद्देश्यों के लिए विभिन्न संख्याओं/उपयोगकर्ताओं को अनुकरण करता है।

+0

यह एक अच्छा विचार है। प्रोग्रामर के रूप में एम्यूलेटर की संख्या प्राप्त करने का कोई तरीका है? – Janne

1

सिम कार्ड की जानकारी एमुलेटर-बांह और एम्यूलेटर-x86 बाइनरी में हार्ड-कोड किया गया है। इस ब्लॉग पोस्ट के अंत में फोन नंबर (एमएसआईएसडीएन) बदलना विस्तृत है: new link, web archive

सिम कार्ड प्रत्येक 2 अंकों के साथ फोन नंबर स्टोर करता है। तो (फोन नंबर का पहला 7) 1555521 बाइनरी में 515525%d1 बन जाता है। जबकि थोड़ा कष्टप्रद, प्रत्येक परीक्षण के लिए इसे पकड़ना दुनिया का अंत नहीं है। आप sed का भी उपयोग कर सकते हैं:

cd path/to/android-sdk-linux/tools/ 
cp emulator-arm emulator-arm.backup 
sed -i 's/515525%d1/816745%d3/g' emulator-arm 

यह संख्या को 1-876-543- [पोर्ट नंबर] में बदल देगा। लिंक किए गए ब्लॉग पोस्ट में क्यों हैं।

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