शीर्षक कहता है, मुझे यूएसबी सक्षम एंड्रॉइड फोन पर एक विशिष्ट यूएसबी डिवाइस की गणना करने में समस्याएं आ रही हैं UsbManager.getDeviceList() का उपयोग कर। मुझे इस और अन्य फोन पर अन्य यूएसबी उपकरणों के साथ गणना करने और संचार करने में कोई दिक्कत नहीं हुई है, लेकिन यह विशिष्ट यूएसबी डिवाइस नहीं मिला है। इसेजैसे तृतीय पक्ष ऐप्स के साथ भी समझा नहीं जा सकता है।यह विशिष्ट डिवाइस UsbManager.getDevicesList() द्वारा क्यों नहीं समझा जा सकता है?
नीचे पीसी पर उचित रूप से वर्णित यूएसबी गुण हैं। मैंने डिवाइस निर्माता के साथ संवाद किया है जिसने पुष्टि की है कि डिवाइस के प्रमाणित बाहरी फर्म ने यूएसबी 2.0 स्पेक का पालन किया है। मूल रूप से, मेरा संदेह यह था कि डिवाइस एंड्रॉइड द्वारा अस्वीकार कर दिया गया था क्योंकि यह निम्नलिखित फ़ील्ड को छोड़ दिया गया: iManufacturer, iProduct, और iSerialNumber, जो अन्य अनुपालन उपकरणों द्वारा शामिल किए गए थे। हालांकि, ऐसा लगता है इन क्षेत्रों USB 2.0 Spec की धारा 9.5 से इस अंश समीक्षा करने के बाद आवश्यक नहीं हैं:
जहां उपयुक्त हो, वर्णनकर्ता स्ट्रिंग वर्णनकर्ता कि मानव पठनीय रूप में एक वर्णनकर्ता का वर्णन प्रदर्शन योग्य जानकारी प्रदान करने के संदर्भ होते हैं। स्ट्रिंग डिस्क्रिप्टर को शामिल करना वैकल्पिक है। हालांकि, वर्णनकर्ताओं के भीतर संदर्भ फ़ील्ड अनिवार्य हैं। यदि कोई डिवाइस स्ट्रिंग डिस्क्रिप्टर का समर्थन नहीं करता है, तो कोई स्ट्रिंग डिस्क्रिप्टर उपलब्ध नहीं होने के लिए स्ट्रिंग संदर्भ फ़ील्ड को शून्य पर रीसेट किया जाना चाहिए।
मेरा प्रश्न, तो क्या यूएसबी डिवाइस की गणना को अस्वीकार करने के लिए UsbManager का कारण बन रहा है? और, सबसे महत्वपूर्ण बात यह है कि एंड्रॉइड को इस डिवाइस की गणना करने के लिए मजबूर करने के लिए मैं इसके बारे में कुछ भी कर सकता हूं? आदर्श रूप से, मुझे ऐसे समाधान में रूचि है जिसमें रूट पहुंच की आवश्यकता नहीं है, लेकिन यह एक सौदा-ब्रेकर नहीं है।
संपादित करें: कुछ नमूना कोड।
UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> deviceList = usbManager.getDeviceList();
// When I plug in this USB device, deviceList is empty.
// Other devices are discoverable, however.
संपादित करें 2: मैं कुछ और अधिक फोन के साथ परीक्षण किया है। मैं सफलतापूर्वक निम्नलिखित फोन के साथ USB डिवाइस प्रगणित है
- नोट 2
- एलजी- V400 के
निम्नलिखित उपकरणों डिवाइस की गणना नहीं कर सकता:
- नेक्सस 5
- गैलेक्सी एस 4, एस 5, एस 6
- एलजी जी 2, 4 जी एलटीई
संपादित करें 3: Here are the logs USB डिवाइस में प्लग लगाने के बाद एक नेक्सस 5 पर adb shell dmesg
कॉल करने से। आप लाइन 4-16 पर स्पष्ट रूप से देख सकते हैं कि फोन डिवाइस को गिनने में विफल रहता है।
कृपया कुछ कोड पोस्ट करें? – napkinsterror
बस किया। यह एक बहुत ही बुनियादी मामला है, इसलिए मुझे यकीन नहीं है कि यह कितना उपयोगी है। –
क्या आप परिणाम प्रिंट कर सकते हैं? क्या आपने उचित अनुमतियां जोड़ दीं? – napkinsterror