2012-02-20 13 views
10

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

+0

मैं आईपी के बारे में पता नहीं है, लेकिन वे एक अद्वितीय मैक पते होनी चाहिए। –

+0

विचार करें कि उपयोगकर्ता डिवाइस को प्रतिस्थापित/अपग्रेड करते समय क्या होता है, और बैकअप या एसडी कार्ड से डेटा को पुनर्स्थापित करता है। क्या उस नए डिवाइस को एक ही उपयोगकर्ता से माना जाना चाहिए? यदि ऐसा है, तो आप शायद हार्डवेयर या नेटवर्क कॉन्फ़िगरेशन की किसी भी विशेषता से बंधे नहीं रहना चाहते हैं। –

उत्तर

13

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

6

एक एंड्रॉइड डिवाइस दोनों वाईफाई, और 3 जी के माध्यम से कनेक्ट किया जा सकता है, जो स्पष्ट रूप से अलग-अलग आईपी हैं।
3 जी पर आईपी पता हर बार फिर से कनेक्ट होने पर भी बदल जाएगा।

8

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

हालांकि, अपने मूल प्रश्न का उत्तर देने के लिए, आप java.util.UUID class का उपयोग कर उपयोगकर्ता के लिए एक अद्वितीय टोकन उत्पन्न कर सकते हैं। यदि आपके ऐप की SharedPreferences को यह जेनरेट किया गया टोकन सेव करें और आप इसका इस्तेमाल अपने उपयोगकर्ताओं को पहचान कर सकते हैं:

public static String getDeviceUuid(Context context) { 
    final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 

    // Attempt to get an existing device uuid 
    String uuid = preferences.getString("device_uuid_key", ""); 
    if (TextUtils.isEmpty(uuid)) { 
     // We don't have a device id, generate one! 
     uuid = UUID.randomUUID().toString(); 

     // Persist the new id to shared preferences 
     final Editor editor = preferences.edit(); 
     editor.putString("device_uuid_key", uuid); 
     editor.commit(); 
    } 
    return uuid; 
} 
+0

डिवाइस के बदलाव के बारे में क्या? यह टोकन – simonmorley

+0

हां बदल नहीं पाएगा, जो टोकन को बदल देगा। साथ ही, यदि वे ऐप को अनइंस्टॉल करते हैं, तो उसे पुन: इंस्टॉल करें, उन्हें एक नया टोकन मिलेगा। यदि आप इन परिवर्तनों में उन्हें पहचानना चाहते हैं तो आपको अंततः उपयोगकर्ता खाते (ईमेल पता या उपयोगकर्ता नाम) के साथ टोकन को जोड़ना होगा। इस तरह वे खाते में लॉग इन कर सकते हैं जब वे आपके ऐप को पुनर्स्थापित करते हैं या डिवाइस बदलते हैं। – twaddington