मैं अपने ऐप के भीतर उपयोग किए जाने वाले SQLite डेटाबेस को बैकअप के रूप में ईमेल करने में सक्षम होने की उम्मीद कर रहा हूं जो उपयोगकर्ता कर सकता है। मेरा वर्तमान कोड नीचे है, डेटाबेस ईमेल इरादे में अनुलग्नक के रूप में दिखाई देता है और ईमेल भेज देगा, लेकिन अनुलग्नक नहीं भेजा जाता है।
File file = new File(Environment.getDataDirectory(), "/data/com.app/databases/databaseName");
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{""});
intent.putExtra(Intent.EXTRA_SUBJECT, "Backup");
intent.putExtra(Intent.EXTRA_TEXT, "");
intent.setType("application/octet-stream");
intent.putExtra(Intent.EXTRA_STREAM, file.toURI());
startActivity(Intent.createChooser(intent, "Send Email"));
3 जवाब
मुझे याद है कि मुझे कुछ समय पहले यह सटीक समस्या थी। मुझे यकीन नहीं है कि मैंने इसे ठीक करने के लिए क्या किया, लेकिन मेरा कामकाजी कोड ऐसा कुछ दिखता है ...
File root = Environment.getExternalStorageDirectory();
String fileName = "foo.txt";
if (root.canWrite()) {
attachment = new File(root, fileName);
}
email.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(attachment));
startActivity(Intent.createChooser(email, "Send Email"));
मुझे याद है कि चूंकि मैं भंडारण के लिए एसडी कार्ड का उपयोग कर रहा था, अगर मैं अभी भी यूएसबी के माध्यम से अपने कंप्यूटर में प्लग किया गया था (क्योंकि यह एसडी कार्ड को माउंट और व्यस्त रखता है) तो यह मेरा अटैचमेंट नहीं भेजेगा। एक बार जब मैंने USB कनेक्शन को अनप्लग कर दिया, तो चीजें अच्छी तरह से काम कर गईं।
इसे ईमेल करने का प्रयास करने से पहले अपने डेटाबेस को एसडी कार्ड में निर्यात करें। आप अपने एप्लिकेशन के डेटा/डेटा फ़ोल्डर के भीतर से अटैचमेंट नहीं जोड़ सकते। वे फ़ाइलें आपके आवेदन के लिए निजी हैं।
यह लिंक देखें: http://www.openintents.org/en/node/121 आपको यूआरआई पास करने की आवश्यकता है
समाधान है:
फाइलों को संलग्न करना होगा
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/mysong.mp3"));
आपको अतिरिक्त / फ़ाइल में: /// (स्टैक ओवरफ़्लो पोस्ट में अनुपलब्ध) की आवश्यकता है अन्यथा GMail फ़ाइल पथ को गलत बताते हुए भेजने से ठीक पहले अनुलग्नक को छोड़ देता है।
तो आपको अतिरिक्त / फ़ाइल में चाहिए और इसे गिराया नहीं गया .... उम्मीद है कि यह मदद करता है
संबंधित सवाल
नए सवाल
android
एंड्रॉइड Google का मोबाइल ऑपरेटिंग सिस्टम है, जिसका उपयोग प्रोग्रामिंग या डिजिटल डिवाइस (स्मार्टफोन, टैबलेट, ऑटोमोबाइल्स, टीवी, वियर, ग्लास, IoT) को विकसित करने के लिए किया जाता है। एंड्रॉइड से संबंधित विषयों के लिए, एंड्रॉइड-विशिष्ट टैग जैसे कि एंड्रॉइड-इरादे, एंड्रॉइड-गतिविधि, एंड्रॉइड-एडॉप्टर आदि का उपयोग करें। विकास या प्रोग्रामिंग के अलावा अन्य प्रश्नों के लिए, लेकिन एंड्रॉइड फ्रेमवर्क से संबंधित हैं, इस लिंक का उपयोग करें: https: // android.stackexchange.com।