2010-12-14 33 views
7

अपने Android एप्लिकेशन में, मैं संदेश का उपयोग कर निम्नलिखित प्रोग्राम के रूप में के लिए, विषय के साथ डिफ़ॉल्ट ईमेल संपादक को खोलने के लिए सक्षम हूँ, और:ईमेल के इरादे को समाप्त करने और परिणाम प्राप्त करने के लिए कैसे प्रतीक्षा करें?

Intent emailIntent=new Intent(Intent.ACTION_SEND); 
emailIntent.putExtra(Intent.EXTRA_EMAIL, toemail); 
emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject); 
emailIntent.putExtra(Intent.EXTRA_TEXT, body); 
emailIntent.setType("text/plain"); 
emailIntent.setClassName("com.android.email", "com.android.email.activity.MessageCompose"); 
startActivity(emailIntent); 

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

कोई भी यह कैसे जानता है?

+0

आपको 'emailIntent.setType (" message/rfc822 ") का उपयोग करना चाहिए;' संदर्भ: [इंटरनेट मीडिया प्रकार] (http://en.wikipedia.org/wiki/Internet_media_type#Type_message)। –

उत्तर

1

यह मुश्किल हो जाएगा। ईमेल भेजने के लिए कोई मानकीकृत वापसी मूल्य नहीं है, और उपयोगकर्ता की सेटिंग्स के आधार पर, मेल ईमेल ऐप, जीमेल ऐप, या कई तृतीय पक्ष ईमेल ऐप्स में से एक के साथ भेजा जा सकता है। वे सबसे अधिक संभावना है कि वे ईमेल को समाप्त करने में कैसे संभालते हैं।

सामान्य रूप से आपके प्रश्न के लिए, आप गतिविधि शुरू करने के लिए startActivityForResult() का उपयोग कर सकते हैं और उसके बाद समाप्त होने के बाद जारी रह सकते हैं, यह दर्शाता है कि चीजें कैसे चलती हैं। हालांकि, मुझे पूरा यकीन है कि अधिकांश ईमेल ऐप्स आपको यहां उचित परिणाम नहीं देंगे।

मुझे यह कहने का लुत्फ उठाना है कि आपको स्वयं को ईमेल भेजने को संभालने की आवश्यकता हो सकती है, यानी एक सरल कार्य लिखें जो एसएमटीपी से जुड़ता है और मेल भेजता है। मुझे यकीन है कि वहाँ बहुत सारे पुस्तकालय हैं जो सभी भारी उठाने को संभालने में सक्षम हैं।

(आप, ज़ाहिर है, startActivityForResult पहले के साथ प्रयोग कर सकते हैं -। शायद सबसे आम ईमेल एप्लिकेशन को आप एक वापसी मान देते हैं)

+1

हम्म, एसएमटीपी या जावामेल के बारे में सोचा, लेकिन अंत में मेरा ऐप मेल ऐप नहीं है। मेल का उपयोग सिर्फ "किसी मित्र को बताने" के लिए किया जाता है और यदि उपयोगकर्ता इसे पूरा करता है तो मैं दृश्य को स्वचालित रूप से खारिज करना चाहता हूं। बहुत मामूली फीचर लेकिन यह यूआई को आसान बना देगा। – Nicholas

2

आम तौर पर, एक startActivityForResult() जो एक उप के रूप में दूसरी गतिविधि शुरू होता है इस्तेमाल कर सकते हैं -activity। हालांकि, ईमेल गतिविधि के मामले में यह आंतरिक कार्यान्वयन की वजह से काम नहीं करता है। सवाल पोस्टिंग से पहले खोज का प्रयास करें:

how can we use startActivityforResult() for Email intent?

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

+0

हां, जैसा कि इबोमाइक ने सुझाव दिया है कि आप जावामेल का उपयोग कर ईमेल क्लाइंट को बाईपास कर सकते हैं, जो एंड्रॉइड पर काम करता प्रतीत होता है: http://stackoverflow.com/questions/2020088/sending-email-in-android-using-javamail-api-without- उपयोग-द-डिफॉल्ट-एंड्रॉइड-एपी – jfelectron

+1

मैं हमेशा खोज करता हूं, स्वाभाविक रूप से, लेकिन उस पोस्ट को नहीं देखा। अच्छा प्रारंभिक बिंदु। मुझे वास्तव में परवाह नहीं है कि ईमेल भेजा गया है, मुझे केवल दिलचस्पी है कि उपयोगकर्ता ने भेजें या त्याग दिया है या नहीं। मैं इसके साथ tinker होगा ... – Nicholas

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

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