के साथ एंड्रॉइड यूएसबी होस्ट समस्या सैमसंग गैलेक्सी टैबलेट पर यूएसबी होस्ट क्षमता का लाभ उठाने का प्रयास कर रहा हूं। मैंने सैमसंग से लगाव डोंगल खरीदा (http://www.samsung.com/us/mobile/galaxy-tab-accessories/EPL-1PL0BEGSTA)। जब मैंने पहली बार इस डोंगल के माध्यम से एक यूएसबी डिवाइस को जोड़ा, तो गैलेक्सी टैबलेट से मुझे एक उच्च शक्ति त्रुटि मिली - एफवाईआई एक बाहरी संचालित यूएसबी हब का उपयोग करता है और आप इसे द्विपक्षीय बना सकते हैं।सैमसंग गैलेक्सी 10.1 टैबलेट
अब जब मैं इसे संलग्न करता हूं तो डिवाइस स्वयं यूएसबी परिधीय के अस्तित्व को स्वीकार कर रहा है, मैंने एंड्रॉइड के एंड्रॉइड.hardware.usb.UsbDevice का उपयोग करने का प्रयास किया; आयात android.hardware.usb.UsbManager; पुस्तकालय। मैंने देखा है जब मैं किसी भी उपकरण, अजीब देते हैं के माध्यम से
IntentFilter usbIntentFilter = new IntentFilter();
usbIntentFilter.addAction("android.hardware.usb.action.USB_DEVICE_ATTACHED");
usbIntentFilter.addAction("android.hardware.usb.action.USB_DEVICE_DETACHED");
registerReceiver(mUsbReceiver,usbIntentFilter);
USB डिवाइस को पहचानने के लिए दो तरीकों, एक प्रसारण रिसीवर को उद्देश्य के लिए सुनने दर्ज की यह किसी भी उद्देश्य फायरिंग नहीं है देखते हैं कि ... ठीक है। तो मैं पर चला गया अगली विधि की कोशिश करने के लिए: स्पष्ट रूप से UsbManager के माध्यम से एक डिवाइस सूची के लिए क्वेरी - यह इस प्रकार पूरा किया गया था:
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
int count = deviceList.size();
Iterator<UsbDevice> iterator = deviceList.values().iterator();
if(iterator.hasNext()){
UsbDevice deviceVal = iterator.next();
testTxtView1.setText("set device " + deviceVal);
}
यह शायद एक हड़पने होगा (केवल एक यूएसबी डिवाइस वर्तमान में प्रति गूगल प्रलेखन समर्थित) यूएसबी डिवाइस जो वर्तमान में जुड़ा हुआ है। इसका परीक्षण करने के लिए मैं उपरोक्त कोड को बटन पर क्लिक करके कॉल करता हूं और डिवाइस के परिणाम प्रदर्शित करता हूं। किसी कारण से, मुझे हर बार डिवाइस सूची से डिवाइस मिल रहा है, चाहे यूएसबी डोंगल कनेक्ट हो या नहीं। इसके अलावा, डिवाइस यूएसबी डोंगल (या इसकी कमी) के बावजूद हर बार एक ही है।
डिवाइस usbDevice [mName =/dev/बस/USB/001/002, mVendorId = 1256, mProductId = 27033, mClass = 0, mSubClass = 0, mProtocol = 0, mInterfaces = [Landroid: इस प्रकार उत्पादन होता है .os.Parcelable; @ 406ff4d8]
^^ @ 406ff4d8 मूल्य हर बार जब मैं इस कोड को क्वेरी में परिवर्तन (मैं सिर्फ यह का एक उदाहरण प्रस्तुत)
मैं हर जगह खोज की है और करने में सक्षम नहीं किया गया है मेरी स्थिति पर लागू होने वाली किसी भी तरह की समस्या या समाधान ढूंढें। मैंने Google के यूएसबी उदाहरणों को लागू करने का प्रयास किया है (जो वास्तव में मेरे पास है, मैंने उन्हें फटकारा) और इन समस्याओं में भाग ले रहा हूं।
मैं अपने प्रकट की मेकअप का उल्लेख करना चाहिए:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="edu.mit.ll.drm4000"
android:versionCode="1"
android:versionName="1.0">
<uses-feature android:name="android.hardware.usb.host" />
<uses-sdk android:minSdkVersion="12" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".DRM4000Activity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
</activity>
</application>
और उपकरण फिल्टर:
(मैं हटा दिया डिवाइस फिल्टर पर मापदंड लेकिन डी के बारे में विशिष्ट जानकारी डालने का भी प्रयास किया है evice मैं देख रहा हूँ ... दोनों का कोई फायदा नहीं हुआ।)
इस समस्या के बारे में कोई भी मदद की सराहना की जाएगी!
कोई अन्य अपडेट: डिवाइस मैं शिकायत की के बारे में हमेशा डिवाइस सूची पर प्रगणित किया जा रहा
डिवाइस usbDevice [mName =/dev/बस/USB/001/002, mVendorId = 1256, mProductId = 27033, mClass = 0, mSubClass = 0, mProtocol = 0, mInterfaces = [Landroid.os.Parcelable; @ 406ff4d8]
एंड्रॉइड साइड यूएसबी पोर्ट या कुछ होना चाहिए ...क्योंकि मैंने अपने कोड में विभिन्न उपकरणों का एक गुच्छा संलग्न करना शुरू किया और पाया कि (इस लिंक के समान: USB_DEVICE_ATTACHED Intent not firing) छुपा डिवाइस, आर्डिनो डिवाइस..और दुख की बात है ... मेरा यूएसबी डिवाइस किसी इरादे को आग लगने या गिनने के लिए प्रतीत नहीं होता है यूएसबी हब मैंने एक यूएसबी फ्लैश ड्राइव के साथ प्रयास किया और यह डीआईडी ने इसे समझाया और काम किया ... हालांकि यह सूची में दूसरे डिवाइस के रूप में दिखाई देता है, पहला ऊपर सूचीबद्ध वर्तमान यूएसबीडिवाइस है। हालांकि इरादों के साथ आग लगती है।
क्या कोई भी एचआईडी उपकरणों और अन्य यूएसबी उपकरणों के साथ इरादे की आग बनाने के लिए एक कामकाज जानता है सिवाय इसके कि कुछ एंड्रॉइड अब कुछ ऐसा लगता है?
क्या आप सत्यापित कर सकते हैं कि यूएसबी होस्ट किसी अन्य ऐप्स के लिए काम करता है? एक पीटीपी कैमरा जोड़ने का प्रयास करें और देखें कि क्या गैलरी प्रसारण का इरादा नोटिस करता है। मुझे लगता है कि आपने रीबूट करने का प्रयास किया है और अपने टैब को नवीनतम संस्करण में अपडेट किया है। –
जब मैं कीबोर्ड में प्लग करता हूं, तो ऐसा लगता है कि यह काम करता है। जब मैं इसे प्लग करता हूं तो मुझे "यूएसबी डिवाइस कनेक्टेड" संदेश मिलता है। हालांकि, उपरोक्त कोड मुझे एक कीबोर्ड के साथ एक ही आउटपुट देता है, अन्य यूएसबी डिवाइस प्लग इन करता है, या प्लग इन नहीं होता है। मुझे समझ में नहीं आता कि यह क्यों देखने का दावा कर रहा है यूएसबी डिवाइस परवाह किए बिना।मुझे पता है कि यह मेरे कोड के साथ कुछ होना चाहिए क्योंकि कीबोर्ड को ठीक से पहचाना जाता है। बीटीडब्लू: जब मैं अन्य डिवाइस से कनेक्ट करता हूं तो यह कहता है "अज्ञात यूएसबी डिवाइस कनेक्ट किया गया" – hinklecw
एक और अपडेट: डिवाइस की सूची पर हमेशा गिनती होने वाली डिवाइस को एंड्रॉइड यूएसबी पोर्ट या कुछ होना चाहिए ... क्योंकि मैंने अलग-अलग समूह को जोड़ना शुरू किया मेरे कोड के लिए डिवाइस और पाया कि (इस लिंक के समान: USB_DEVICE_ATTACHED इरादा नहीं फायरिंग) छुपा डिवाइस, आर्डिनो डिवाइस, और मेरा यूएसबी डिवाइस किसी इरादे को आग लगाना या यूएसबी हब द्वारा गणना नहीं करना है। मैंने एक यूएसबी फ्लैश ड्राइव के साथ प्रयास किया और यह डीआईडी ने इसे समझाया और काम किया ... हालांकि यह सूची में दूसरे डिवाइस के रूप में दिखाई देता है, पहला ऊपर सूचीबद्ध वर्तमान यूएसबीडिवाइस है। हालांकि इरादों के साथ आग लगती है। – hinklecw