2010-04-29 15 views
30

पर क्लिक करने पर एक ईमेल क्लाइंट खोलना मैं एक ऐप डिज़ाइन कर रहा हूं जिसमें मुझे एक बटन क्लिक करने पर एक ईमेल क्लाइंट खोलना होगा। ईमेल क्लाइंट को पूर्व परिभाषित विषय और 'to' पते के साथ खोला जाना चाहिए। क्या यह हासिल करने का कोई तरीका है? मुझे समाधान और एक कोड उदाहरण यदि संभव हो तो प्रदान करें ...बटन

+0

संभावित डुप्लिकेट [इरादों के माध्यम से ईमेल प्रोग्राम कैसे खोलें (लेकिन केवल एक ईमेल प्रोग्राम)] (http://stackoverflow.com/questions/3312438/how-to-open-email-program-via-intents-but -ऑनली-ए-ईमेल-प्रोग्राम) – mixel

उत्तर

62

इस प्रकार है:

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("plain/text"); 
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]" }); 
intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); 
intent.putExtra(Intent.EXTRA_TEXT, "mail body"); 
startActivity(Intent.createChooser(intent, "")); 

वैकल्पिक रूप से, आप IntentFactory.getSendEmailIntent(String mailTo, String mailCC, String subject, CharSequence body, File attachment) इस्तेमाल कर सकते हैं।

+1

जब मैं बटन को क्लिक करता हूं तो यह प्रदर्शित करता है कि कोई भी क्रिया इस क्रिया को निष्पादित नहीं कर सकती .... समाधान क्या है ??? –

+0

यह केवल एक वास्तविक डिवाइस पर काम करेगा। – yanchenko

+0

क्या मेरे एमुलेटर में ईमेल क्लाइंट खोलने का कोई और तरीका है .. ???? –

0

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

Intent intent = new Intent(Intent.ACTION_VIEW); 
Uri data = Uri.parse("mailto:[email protected]?subject=" + subject + "&body=" + body); 
intent.setData(data); 
startActivity(intent); 

आप पहले से ही डिफ़ॉल्ट ईमेल क्लाइंट चुना है तो यह वह आरंभ हो जाएगा:

9

केवल ईमेल क्लाइंट इस कोड का उपयोग दिखाने के लिए। अन्यथा यह उपलब्ध ईमेल क्लाइंट की एक सूची दिखाएगा।

+0

यह पूरी तरह से काम करता है ... मुझे आश्चर्य है कि यह अनुमति के बिना क्यों काम करता है? – anshulkatta

+0

@anshulkatta क्योंकि यह अनुमतियों की आवश्यकता के लिए कोई कार्रवाई नहीं करता है। यह सिर्फ उस गतिविधि को खोलता है जो ईमेल भेज सकता है। – mixel