2009-04-19 4 views
5

मैं एक एसडब्ल्यूटी एप्लीकेशन लिख रहा हूं जिसे सिस्टम ट्रे में बैठने की जरूरत है और जब भी उपयोगकर्ता कुछ यूएसबी डिवाइस को जोड़ता है (एप्लिकेशन के रूप में कार्य करता है इसका नियंत्रण पैनल)।एसडब्ल्यूटी: सिस्टम डिवाइस चेंज (यूएसबी डिवाइस कनेक्शन/डिसकनेक्शन) की अधिसूचना प्राप्त करना

देशी वातावरण में ऐसा करने का तरीका (इस मामले में win32, लेकिन मुझे अंततः मंच-स्वतंत्र होना चाहिए) WM_DEVICECHANGE ईवेंट को सुनना है, फिर जांच कर रहा है कि मेरा डिवाइस डिस्कनेक्ट हो गया है या नहीं।

विषय को गुगल करना, ऐसा लगता है कि एसडब्ल्यूटी वास्तव में इस प्रकार की घटना को संभाल नहीं पाता है। क्या किसी को यह जानने का कोई विचार है कि इसे कैसे प्राप्त किया जाए? मेरे वापस आने समाधान यूएसबी पोर्ट प्रत्येक n सेकंड के नमूने, उपकरण के लिए देख रहा होगा, लेकिन यह नहीं-नहीं समाधान के रूप में अब तक मेरा सवाल है है ...

धन्यवाद और चियर्स

शाई

+0

पर खिड़कियों के लिए एक jUSB बंदरगाह, आप सही जावा में मानक विजेट टूलकिट के बारे में बात कर रहे हैं स्पष्ट रूप से कहें? यदि ऐसा है, तो कृपया एक "जावा" टैग जोड़ें। या क्या आपका मतलब कुछ अन्य एसडब्ल्यूटी है? – Jegschemesch

+0

सही। यह मेरे लिए इतना स्वाभाविक था कि मैं पूरी तरह से सबसे बुनियादी जोड़ना भूल गया :) –

+0

आखिरकार, मैं एक सक्रिय श्रोता के लिए बस गया हूं, यूएसबी चालक डीएलएल को हर एन मिलीसेकंड पर मतदान कर रहा हूं। –

उत्तर

0

जावा डिवाइस और यूएसबी के साथ सीधी बातचीत प्रदान नहीं करता है। जावा के लिए कई तृतीय-पक्ष पुस्तकालय हैं जो यूएसबी से संबंधित विशेषताएं प्रदान करते हैं (यूएसबी पोर्ट से पढ़ें/लिखें)। उदाहरण के लिए: http://www.icaste.com/ (वाणिज्यिक)

+0

मुझे यूएसबी कनेक्शन की आवश्यकता नहीं है - मैं जेएनए द्वारा लिपटे डिवाइस से जुड़े डिवाइस के साथ आपूर्ति किए गए डीएलएल का उपयोग कर ऐसा कर रहा हूं। मुझे ओएस WM_DEVICE_CHANGED संदेश सुनने की आवश्यकता है। –

1

संपादित करें: जम्मू-16 SDiZ खबर दी है कि एपीआई विंडोज के लिए मौजूद है भी

यहाँ एक बहुत अच्छा लेख के बारे में Access USB devices from Java applications

वर्णित jUSB मॉड्यूल एक USBListener होता है वस्तु।

यूएसबी संरचना की निगरानी करना चाहते हैं जो ऑब्जेक्ट्स द्वारा कार्यान्वित इंटरफ़ेस। जिस क्रम में इन परिवर्तनों की सूचना दी गई है वह जरूरी नहीं है कि वास्तविक दुनिया में परिवर्तन देखा गया हो, और देरी भी हो।

तू SWT वस्तु इस श्रोता को लागू करने और, कुछ करना है जब विधि

deviceAdded(Device dev) 

निकाल दिया जाता है कर सकते हैं
+0

जहां तक ​​मैं देख सकता हूं, jUSB Win32 का समर्थन नहीं करता है, जो इस ऐप को प्राथमिक प्लेटफॉर्म का समर्थन करना चाहिए। –

+0

मुझे खेद है, आपका अधिकार। यह केवल लिनक्स के लिए काम कर रहा है। –

0

Zorglub के लिए आपकी टिप्पणी पता चलता है कि आप कुछ (शायद) JNI/JNA है आपके द्वारा उल्लिखित तृतीय पक्ष डीएलएल को कॉल करने के लिए कोड। मुझे लगता है कि आप विंडोज एपीआई में जेएनआई रैपर भी लिख सकते हैं जहां आप उल्लेख किए गए _WM_DEVICECHANGE_ ईवेंट के लिए अधिसूचित होने के लिए पंजीकरण कर सकते हैं।

+0

जो शायद सही काम करेगा, इस विकास के लिए पर्याप्त संसाधन उपलब्ध हैं। दुर्भाग्यवश, यह मामला नहीं है ... मैं अंततः एक सक्रिय श्रोता के लिए बस गया। –

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