2009-11-20 27 views
12

मैं इस कोड मैं यहां पाया जो करने की कोशिश की:मैं "एप" फ़ील्ड के साथ ईमेल एप कैसे लॉन्च करूं?

Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "[email protected]", null)); startActivity(intent); 

लेकिन मैं स्क्रीन जो "असमर्थित कार्रवाई" पढ़ता है पर एक संदेश मिलता है। इस काम को कैसे प्राप्त किया जाए इसके बारे में कोई विचार?

धन्यवाद!

/* Create the Intent */ 
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 

/* Fill it with Data */ 
emailIntent.setType("plain/text"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Text"); 

/* Send it off to the Activity-Chooser */ 
context.startActivity(Intent.createChooser(emailIntent, "Send mail...")); 

कुंजी टुकड़े: अपने पते के लिए EXTRA_EMAIL का उपयोग करने और createChooser() मामले में उपयोगकर्ता के लिए कॉन्फ़िगर एक से अधिक ईमेल क्लाइंट है का उपयोग कर

उत्तर

27

इस snippet का प्रयास किया।

+3

धन्यवाद, यह काम किया :) मैंने शुरुआत में ऐसा कुछ करने की कोशिश की लेकिन यह सिर्फ कुछ मैसेजिंग स्क्रीन खींच लिया, न कि ईमेल ऐप। मुझे लगता है कि ऐसा इसलिए था क्योंकि उस समय, मेरे पास एम्यूलेटर में एक ईमेल खाता नहीं था? – scuba

+0

आपने अंतिम कीवर्ड का उपयोग कैसे किया? क्या इसका परिणाम किसी प्रकार के अनुकूलन में है, मुझे अनजान है? – Scott

+0

मैंने स्निपेट नहीं लिखा था। निजी तौर पर, शायद मैंने वहां अंतिम खोजशब्द का उपयोग नहीं किया होता। – CommonsWare

3

तुम कोशिश

Intent intent = new Intent(
    Intent.ACTION_SENDTO, 
    Uri.parse("mailto:[email protected]") 
); 
startActivity(intent); 
+0

इसे एक शॉट दिया, अभी भी संदेश प्राप्त करें: असमर्थित कार्रवाई यह क्रिया वर्तमान में समर्थित नहीं है। टोस्ट-जैसे बबल में। क्या मुझे अपने ऐप का उपयोग करने के लिए मैनिफेस्ट में कुछ सेट अप करने की ज़रूरत है? – scuba

1

मुझे लगता है कि यहां वास्तविक समस्याएं हैं कि आप आधिकारिक एमुलेटर पर चल रहे हैं और आपका इरादा कुछ भी मेल नहीं खाता है।

मेरे परीक्षण से, यह एक समस्या है जो तब होता है जब इरादा का यूआरआई (setData() से) कुछ भी मेल नहीं खाता है और आप आधिकारिक एंड्रॉइड अनुकरणकर्ताओं में से एक पर चल रहे हैं। यह वास्तविक उपकरणों पर नहीं प्रतीत होता है, इसलिए यह वास्तविक दुनिया की समस्या नहीं होनी चाहिए।

आप पता लगाने के लिए जब यह इससे पहले कि आप आशय का शुभारंभ होने जा रहा है इस कोड का उपयोग कर सकते हैं:

ComponentName emailApp = intent.resolveActivity(getPackageManager()); 
ComponentName unsupportedAction = ComponentName.unflattenFromString("com.android.fallback/.Fallback"); 
boolean hasEmailApp = emailApp != null && !emailApp.equals(unsupportedAction); 

(। गतिविधि से पता चलता है कि "असमर्थित कार्रवाई" कार्रवाई विधि com.android.fallback.FallbackActivity है का नाम)