2012-05-17 17 views
7

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

मुझे लगता है कि एक टीसीपी कनेक्शन मेरी ज़रूरतों के अनुरूप होगा लेकिन adb ड्राइवर पर इसके साथ जुड़ना अजीब लगता है।

मैं डेटा केबल का उपयोग कर विंडोज़ से एंड्रॉइड से कैसे संवाद कर सकता हूं?

उत्तर

8

मुझे इस विषय here के बारे में एक अच्छी पोस्ट मिली। एंड्रॉइड डिवाइस और पीसी के बीच पोर्ट अग्रेषण करने के लिए आपको मूल रूप से एडीबी की आवश्यकता है। उदाहरण के तौर पर:

C:\android-sdk-windows\tools\adb.exe forward tcp:38300 tcp:38300 

फिर आप एंड्रॉइड डिवाइस और पीसी दोनों में मानक सॉकेट प्रोग्रामिंग का उपयोग कर सकते हैं।

+0

बढ़िया! टिप के लिए धन्यवाद! – opc0de

+0

मैंने कोशिश की कि (मेरा एपी पोर्ट 21121 का उपयोग करता है) तो मैं टैबलेट पर वाईफाई बंद कर देता हूं और अपना एपी चलाता हूं (पीसी और एंड्रॉइड जो एक साथ बात कर रहे हैं)। वे पल नहीं करते हैं मैं सॉकेट सॉकेट = नई सॉकेट (एमएसरवरिप, 21121) करता हूं; सॉकेट IOException – steveh

+0

विफल रहता है मुझे लगता है कि यह मेरे लिए काम नहीं करेगा क्योंकि मेरे पास पीसी पर सर्वर सॉकेट है (यह सुनता है और स्वीकार करता है) और एंड्रॉइड पर क्लाइंट सॉकेट। मुझे लगता है मुझे एंड्रॉइड पर पोर्ट अग्रेषण करने की ज़रूरत है? मैंने फ्री पोर्ट फॉरवर्डर्स के कूप की कोशिश की लेकिन कोई भी काम नहीं किया। – steveh

3

एंड्रॉइड दो प्रकार के माध्यम से यूएसबी परिधीय और एंड्रॉइड यूएसबी एक्सेसरीज़ (हार्डवेयर जो एंड्रॉइड एक्सेसरी प्रोटोकॉल लागू करता है) का समर्थन करता है: यूएसबी एक्सेसरी और यूएसबी होस्ट। यूएसबी एक्सेसरी मोड में, यूएसबी होस्ट के रूप में बाहरी यूएसबी हार्डवेयर कार्य।

के लिए और अधिक जानकारी देखें: USB Host and Accessory और उदाहरण click here

+2

दुर्भाग्यवश यूएसबी एक्सेसरी और होस्ट मोड सीधे एंड्रॉइड 3.1 :(में समर्थित हैं। मैनी लोगों में एंड्रॉइड 3.1 या उच्चतर – opc0de

+0

नहीं है आप बाहरी लाइब्रेरी का उपयोग कर सकते हैं। कृपया यहां देखें: http://developer.android.com/guide/topics/usb /accessory.html#choosing – Hesam

1

आप एक यूएसबी डेटा स्थानांतरण केबल (यूएसबी डाटा लिंक केबल भी कहा जाता है) जो समर्थन एपीआई या एसडीके, उसके बाद निम्न कोड का उपयोग करने की जरूरत है:

void usb2usbComm() 
{ 
BYTE  buf[65530]; 
LPU2URET pU2uRet; 
BOOL  bRet; 
int   ret; 
CString  msgstr; 

ret = u2u_open(); 
if (ret == -1){ 
    AfxMessageBox("Open U2U device Success."); 
}else{ 
    msgstr.Format("Open U2U device fail,return:%d", ret); 
    AfxMessageBox(msgstr); 
    return; 
} 

//send data 
bRet = u2u_SendData(buf, 65530, ret); 
if(!bRet) 
{ 
    msgstr.Format("Send data error,return:%d", ret); 
    AfxMessageBox(msgstr); 
    return; 
} 

//receive data 
while (1){ 
    bRet = u2u_RecvData(recvData, dataLen, ret); 
    if(!bRet) 
    { 
     msgstr.Format("Receive data error,return:%d", ret); 
     AfxMessageBox(msgstr); 
     u2u_close(); 
     return; 
    }else{ 
     break; 
    } 
} 
u2u_close(); 


} 

देखें: Reference1, Reference2

0

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

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