2011-09-04 12 views
5

मैंने एक एंड्रॉइड एप्लिकेशन बनाया है, जब मैं एंड्रॉइड चलाने वाले यूएसबी आइटम को पीसी से कनेक्ट करता हूं तो मैं स्वचालित रूप से खोलना चाहता हूं।यूएसबी आइटम पीसी से कनेक्ट होने पर लॉन्च करने के लिए एप्लिकेशन पंजीकृत करें

क्या यूएसबी कनेक्शन को संभालने के लिए मेरे आवेदन को पंजीकृत करना संभव है? मैं उसको कैसे करू?

+1

इस प्रश्न का उत्तर देखें: http://stackoverflow.com/questions/4600896/android-detecting-usb – Mark

+0

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

+0

अपनी गतिविधि लॉन्च करके संदेश का जवाब दें ... – Mark

उत्तर

0

आप यूएसबी के माध्यम से पीसी से कनेक्ट होने पर भी अपने मोबाइल से कोई भी एप्लिकेशन खोल सकते हैं।

यूएसबी से जुड़े या अलग किए गए पता लगाने के बारे में नीचे दिए गए लिंक पर जाएं और इसके लिए ब्रॉडकास्ट रिसीवर पंजीकृत करें और उचित उद्देश्य का उपयोग करके रिसीवर से अपना एप्लिकेशन लॉन्च करें।

http://developer.android.com/guide/topics/usb/accessory.html

+1

मुझे लगता है कि उसका मतलब है * स्वचालित रूप से * (यानी, केबल को कनेक्ट करके ओपन एप्लिकेशन * ट्रिगर *) – aioobe

+0

वह एप्लिकेशन को स्वचालित रूप से खोलने के लिए कह रहा है। – Mark

+0

या यू आर राइट.ट्स का मतलब है कि यह ऐप सीधे खुलता है जब यह केबल – Angel

4

आप Intent.ACTION_UMS_CONNECTEDके लिए सुन सकते हैं (USB विपुल भंडारण मोड प्रारंभ) या Intent.ACTION_POWER_CONNECTEDएक BroadcastReceiver साथ (फोन अब चार्ज हो रहा हो) प्रसारण।

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

जहाँ तक मुझे पता के रूप में वहाँ कोई मंशा है कि आप यह सुनिश्चित करें कि आप एक कंप्यूटर से जुड़े हैं के लिए बताता है (मैं देख सकता हूँ कि यह पीसी पर एक आवेदन पत्र के बिना पता लगाने के लिए मुश्किल है)। आप intent class documentation पढ़ सकते हैं और देख सकते हैं कि क्या आप एक ऐसा प्रसारण ढूंढ सकते हैं जिसे मैंने अभी तक नहीं देखा है। अपने मालसूची फ़ाइल में यूएसबी संदेशों के लिए यह पंजीकृत

<receiver android:name=".BattStatusShow"> 
    <intent-filter> 
     <action android:name="android.intent.action.ums_connected" /> 
    </intent-filter> 
</receiver> 

फिर अपने बैटरी की स्थिति वर्ग का विस्तार BroadcastReceiver, के बाद से:

+0

या मैंने पहले इस कोड का उपयोग किया है लेकिन यह केवल यूएसबी कनेक्शन का पता चला है .. लेकिन मैं अपनी ऐप कैसे देख सकता हूं। – Angel

+0

'ब्रॉडकास्ट रिसीवर' 'पर' इरादा 'लॉन्च करें (ऑन' विधि। –

4

अपने Manifest.xml में, इस जोड़ें।

public class BattStatusShow extends BroadcastReceiver{ 
    if (intent.getAction().equalsIgnoreCase("android.intent.action.UMS_CONNECTED")) { 
    //do stuff here, like signal the view of your app it needs to do something 
    } 
} 

आपकी ऐप्लिकेशन क्या के बारे में ज्यादा जानकारी नहीं देते, लेकिन अगर यह केवल एक बैटरी प्रदर्शन आवेदन, अपने Android ऐप्लिकेशन से बात करने के लिए एक पीसी मेजबान आवेदन प्रोग्रामिंग है overkill लगता है। यदि आप और अधिक करना चाहते हैं, तो देखें कि नोकिया पीसी स्टेशन ऐप नोकिया के साथ कैसे इंटरैक्ट करता है और व्यवहार का अनुकरण करता है।

+0

लेकिन यह केवल तभी मैसेज दिखाएगा। मैं यह एनिमेटेड टॉमकैट कैसे देख सकता हूं जो कहता है कि "आपकी बैटरी स्थिति ..%" इसका ऑडियो एप्लीकेशन है। – Angel

+0

आपको अपने आवेदन की मुख्य गतिविधि के इरादे को फायर करने वाली लाइन के साथ "यहां सामग्री करें" लाइन को प्रतिस्थापित करने की आवश्यकता है। – Kheldar

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

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