AVD

2011-09-16 13 views
6

से कनेक्ट करने के लिए कैसे मैं अपना स्वयं का एंड्रॉइड http सर्वर लिखने की कोशिश कर रहा हूं। यह काफी ठीक है लेकिन मुझे अपने एवीडी में समस्या है। जब भी मैं परिवर्तनों का परीक्षण करना चाहता हूं, मैं हर बार फोन पर अपना ऐप डाउनलोड नहीं करना चाहता हूं। मैं एवीडी के माध्यम से अपने ऐप से कनेक्ट करना चाहता हूं। आईपी पते मैं इस समारोह का उपयोग कर रहा प्राप्त करने के लिए:AVD

private String getLocalIpAddress() { 


     try { 
      for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { 
       NetworkInterface intf = en.nextElement(); 
       for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { 
        InetAddress inetAddress = enumIpAddr.nextElement(); 
        if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); } 
       } 
      } 
     } catch (SocketException ex) { 
      Log.e("ServerActivity", ex.toString()); 
     } 
     return null; 
    } 
मेरे फोन सब कुछ अच्छा काम करता है पर

, लेकिन यह आईपी पता चलता जब मैं AVD पर मेरे अनुप्रयोग चलाने: 10.0.2.15 और मैं कनेक्ट करने में असमर्थ हूँ इसके लिए क्या एवीडी पर चल रहे मेरे ऐप से कनेक्ट करने का कोई तरीका है? यदि यह मायने रखता है कि मेरा ऐप पोर्ट 8080 का उपयोग करता है।

+0

फ़ायरवॉल मुद्दा तरह लगता है। – doNotCheckMyBlog

उत्तर

0

जबकि मुझे आपकी समस्या का उत्तर सीधे नहीं पता है, मुझे पता है कि आपके कंप्यूटर पर एवीडी से कनेक्ट करते समय, आपको 10.0.2.2 का उपयोग करना होगा क्योंकि आपका एवीडी अनिवार्य रूप से एक और "राउटर" के पीछे है। इसे आपके राउटर से स्थानीय लैन आईपी नहीं मिलता है। अधिक जानकारी के लिए this प्रश्न देखें। this लिंक से, वह उद्धरण:

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

6

डिवाइस में टेलनेट (यह मानते हुए यह बंदरगाह 5554 पर है):

टेलनेट स्थानीय होस्ट 5554

एंड्रॉयड सांत्वना प्रॉम्प्ट पर रीडायरेक्ट का उपयोग: 8080: 8080

टीसीपी जोड़ने REDIR

अपने ब्राउज़र को 'http://127.0.0.1:8080/' पर इंगित करना अब एवीडी को भेजना चाहिए, और प्राप्त करना चाहिए।

के सौजन्य: http://www.rhill.co.uk/?p=35

+0

यह अस्पष्ट है, जहां 'redir' कमांड आने की जरूरत है, यह नवीनतम छवियों में मौजूद नहीं है। –