2010-08-24 15 views
50

मैंने टीएफएलएन (पिछली रात से ग्रंथों) जैसे ऐप्स में "शेयर के माध्यम से" संवाद देखा है। ऐसा लगता है: share dialog http://garr.me/wp-content/uploads/2009/12/sharevia.jpgएंड्रॉइड शेयर के माध्यम से डायलॉग

मैं टेक्स्ट साझा करना चाहता हूं। क्या कोई मुझे सही दिशा दिखा सकता है? क्या यह इरादों से किया जाता है?

+8

क्या आप जो तस्वीर जुड़ी हैं उसे अपडेट कर सकते हैं? यह टूटा हुअा है। – RestInPeace

उत्तर

105

यह वास्तव में इरादों के साथ किया जाता है। साथ

मुद्दों
Intent share = new Intent(Intent.ACTION_SEND); 
share.setType("text/plain"); 
share.putExtra(Intent.EXTRA_TEXT, "I'm being sent!!"); 
startActivity(Intent.createChooser(share, "Share Text")); 
+6

क्या http url द्वारा इंगित छवि साझा करना संभव है: share.putExtra (Intent.EXTRA_STREAM, Uri.parse ("http://helios.gsfc.nasa.gov/image_mag_stamp.jpg")); ? मैं यह काम नहीं कर सकता। – sinek

+1

दूसरा संदेश संदेश एप्लिकेशन के साथ काम नहीं करता है। –

+0

@ सेकेंड क्या पाठ संस्करण एमुलेटर से अधिक विकल्प प्रदर्शित करता है? मैंने आपके द्वारा सुझाए गए प्रयासों की कोशिश की और यह तुरंत अंतर्निहित एसएमएस एप्लिकेशन तक पहुंच गया। मैं प्रश्न में उल्लिखित तस्वीर की तरह कुछ और स्पष्ट रूप से कुछ और देखना चाहता हूं। – thegrinner

4

हां। आपको एक इरादे फ़िल्टर के साथ एक गतिविधि प्रदान करने की आवश्यकता है जो एमआईएमई प्रकार छवि/जेपीईजी (कहें, यदि आप जेपीईजी छवियों को साझा करना चाहते हैं), और संभवतः ACTION_SEND की कार्रवाई को नियंत्रित कर सकते हैं।

अंतर्निहित एंड्रॉइड ऐप्स में से कई खुले स्रोत हैं, आप यह देखने के लिए मैसेजिंग ऐप की मेनिफेस्ट फ़ाइल देख सकते हैं कि यह किस इरादे से फ़िल्टर कर रहा है।

+0

असल में, मुझे विश्वास नहीं है कि सभी अंतर्निहित एंड्रॉइड ऐप्स खुले स्रोत हैं, बस ऑपरेटिंग सिस्टम। –

+2

निश्चित रूप से Google सेवाओं (जीमेल, मैप्स, आदि) का उपयोग करने वाले लोग नहीं - मैं अधिक बुनियादी लोगों का जिक्र कर रहा था, जो कि एमुलेटर के साथ आता है। मैं rephrase होगा। – EboMike

6

मैं हो रही थी: आप की तरह कुछ का प्रयोग करेंगे

Intent share = new Intent(Intent.ACTION_SEND); 
share.setType("image/jpeg"); 

share.putExtra(Intent.EXTRA_STREAM, 
    Uri.parse("file:///sdcard/DCIM/Camera/myPic.jpg")); 

startActivity(Intent.createChooser(share, "Share Image")); 

पाठ के लिए:

एक छवि साझा करने, उदाहरण के चित्र में की तरह के लिए, यह कुछ इस तरह होगा स्वीकार्य उत्तर क्या काम किया मुझे पथ से एक फ़ाइल बनाने के लिए किया गया था, तो फ़ाइल का URI पार्स करने, जैसे:

Uri.fromFile(new File(filePath)); 

बजाय बस मामला किसी को भी एक ही समस्या हो रही है की

Uri.parse(filePath) 

+3

आपके समाधान ने स्वीकृत एक के बजाय मेरी समस्या को हल किया। क्या आप जानते हैं कि स्वीकृत उत्तर क्यों काम नहीं करता है? – RestInPeace

+1

@RestInPeace शायद यह निर्भर करता है कि आपकी फ़ाइल फ़ाइल सिस्टम पर कहां रहती है। उदाहरण में उन्होंने फ़ाइल जैसे स्ट्रिंग दी: /// ... यदि आपका पथ उसी प्रारूप में नहीं था, तो Uri.parse का उपयोग विफल हो जाएगा। – DiscDev

+0

असल में मेरे लिए 'Uri.parse (filePath)' कुछ ऐप्स में काम किया, (उदाहरण के लिए व्हाट्सएप साझाकरण, और ड्रॉपबॉक्स) लेकिन इंस्टाग्राम, जीमेल और फेसबुक के साथ असफल रहा। 'Uri.fromFile (नई फ़ाइल (filePath)) जीमेल में छोड़कर एक आकर्षण की तरह काम करता है, जो अभी भी विफल रहता है लेकिन मुझे ईमेल लिखना पड़ता है और मैं देख सकता हूं कि फ़ाइल सही ढंग से जुड़ी हुई है। – Olaia

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