2011-01-09 17 views
16

मुझे दो एंड्रॉइड अनुप्रयोगों (एक फोन पर) विकसित करने के तरीके में कुछ मदद की ज़रूरत है जो एक दूसरे के साथ संवाद करते हैं।दो अनुप्रयोगों के बीच एंड्रॉइड संचार

  1. आवेदन एक आवेदन बी के लिए एक स्ट्रिंग
  2. आवेदन बी उदाहरण के लिए स्ट्रिंग "startClassOne" प्राप्त करता है भेजता है, अनुप्रयोग एक पद्धति का उपयोग करके बी classOne शुरू होता है और परिणाम हो जाता है। परिणाम वापस आवेदन ए को भेजा जाता है (फिर स्ट्रिंग के रूप में!)
  3. आवेदन A, B
  4. से प्राप्त स्ट्रिंग कंसोल में लिखते हैं
+0

क्या आप ऐप जैसे चैट बनाना चाहते हैं? –

+0

नहीं, ऐप्स को एक दूसरे के साथ संवाद करना चाहिए, ऐप बी में गतिविधियों को कंपन जैसी चीजें करना चाहिए, प्रकाश बदलना चाहिए और इसी तरह, और यदि उदाहरण के लिए कंपन शुरू हो रही है, तो ऐप बी परिणाम परिणाम स्ट्रिंग भेजता है ("कंपन सफल") ऐप ए (ऐप ए बहुत बाद में करने जा रहा है, लेकिन इस उदाहरण के लिए मुझे केवल इन दो ऐप्स के बीच संवाद करने की आवश्यकता है) – androidTesting

उत्तर

33

हैलो, मैं कैसे दो का विकास शुरू करने के लिए कुछ मदद की ज़रूरत है एंड्रॉइड एप्लिकेशन (एक फोन पर) जो एक दूसरे के साथ संवाद करते हैं।

पूरी तरह से, आप आमतौर पर कृत्रिम रूप से एक आवेदन को दो में विभाजित नहीं करना चाहते हैं, खासकर यदि आप दोनों के लेखक हैं।

कहा जा रहा है, आप कर सकते हैं:

  • आवेदन बी एक एक IntentService कि आवेदन एक से startService() के माध्यम से बुलाया जाएगा, createPendingResult() से एक PendingIntent के माध्यम से वापस पारित कर दिया परिणामों के साथ या एक Messenger या प्रसारण को दर्शाना Intent या ResultReceiver; या
  • आवेदन बी एक API AIDL में परिभाषित के साथ एक Service का पर्दाफाश, और अनुप्रयोग है कि सेवा के लिए एक बाँध है, तो आवेदन आवेदन बी पर एक कॉल के तरीकों है, या
  • आवेदन बी के लिए आवेदन एक से एक प्रसारण Intent भेज , साथ परिणामों में पहला बुलेट में विकल्पों में से एक ही रोस्टर से वापस पारित किया जा रहा है, या
  • आवेदन बी एक सामग्री प्रदाता को लागू है, और आवेदन एक ContentResolver का उपयोग करें कि सामग्री प्रदाता में हेरफेर करने के
  • और इतने
पर है

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

+0

मान लें कि हमारे पास एक ऐप है जिसे जानने की जरूरत है कि 5 अन्य ऐप्स के पास उनके डेटा में एक विशिष्ट फ़ाइल है या नहीं फ़ोल्डर। उपयोग करने के लिए सबसे अच्छा तंत्र क्या है ताकि पहला ऐप एक संदेश भेज सके और फ़ाइल के पहले ऐप से "हां" परिणाम स्ट्रिंग या सच्चे बूलियन प्राप्त कर सके? – trusktr

+0

जब मैं अपने दूसरे एप्लिकेशन में इरादे से परिणाम प्राप्तकर्ता पार्सलबल प्राप्त करने का प्रयास करता हूं तो 'परिणाम रिसीवर' का उपयोग करने के पहले विकल्प के बारे में मुझे मिला: 'ई/पार्सल: कक्षा अनमर्शलिंग के दौरान नहीं मिली: com.myapp.demo.DemoActivity $ 1' क्या कोई मुश्किल हिस्सा है ? – L3K0V

+0

@ L3K0V: मैं अनुशंसा करता हूं कि आप एक अलग स्टैक ओवरफ़्लो प्रश्न पूछें, जहां आप अपनी समस्या का एक न्यूनतम, पूर्ण और सत्यापन योग्य उदाहरण प्रदान कर सकते हैं, जिसमें जावा स्टैक ट्रेस और ट्रेस का संदर्भ शामिल कोड शामिल होगा। – CommonsWare

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