से जुड़ा जा सकता है अंतिम उद्देश्य जल्द ही स्पष्ट हो जाएगा।एंड्रॉइड एक मेमोरी निवासी इनपुट फ़ाइल बनाना जो ईमेल
मैं एक फ़ाइल ऑब्जेक्ट बनाना चाहता हूं और वास्तविक भौतिक फ़ाइल से डेटा प्राप्त करने के बजाय मैं खुद को बफर प्रदान करना चाहता हूं।
फिर, मैं इस फ़ाइल का उपयोग करना चाहता हूं, जो वास्तव में एसडीकार्ड में या मेरे ऐप के बाहर कहीं भी मौजूद नहीं है, इसे एक नाम दें और इसे एक अनुलग्नक के रूप में ईमेल द्वारा भेजें (EXTRA_STREAM का उपयोग करके)।
मैं, कोड की निम्न बिट पाया Adriaan Koster (@adriaankoster), पोस्ट Write byte[] to File in Java
// convert byte[] to File
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bis);
File fileFromBytes = (File) ois.readObject();
bis.close();
ois.close();
System.out.println(fileFromBytes);
मैं इसे इस्तेमाल किया इस समारोह
private File fileFromBytes(byte[] buf) {
File f = null;
try {
ByteArrayInputStream bis = new ByteArrayInputStream(buf);
ObjectInputStream ois = new ObjectInputStream(bis);
f = (File) ois.readObject();
bis.close();
ois.close();
}
catch (Exception e) {}
return f;
}
बनाने के लिए और यहाँ कर रहा है मैं कहाँ हूँ अटक, क्योंकि जब मैं इसे का उपयोग करें:
// When sent as body the mail is sent OK
// emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, dump());
// When I try to attach the mail is empty
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, fileFromBytes(dump().getBytes()));
मैं उदाहरण से पता मैंने देखा है से cond तर्क एक यूआरआई होना चाहिए, लेकिन: मैं अपनी फ़ाइल फिट करने के लिए आभासी यूआरआई कैसे बना सकता हूं?
संपादित करें: कुछ प्रकार के अनुप्रयोगों के लिए सीधे डेटा संलग्न करने का विकल्प महत्वपूर्ण है। अर्थात्, सुरक्षा & बैंकिंग अनुप्रयोग जो संवेदनशील डेटा को बहुत अधिक स्थानांतरित नहीं करना चाहते हैं। निश्चित रूप से यदि डेटा एसडीकार्ड तक नहीं पहुंचता है और सीधे मेल अटैचमेंट पर जाता है तो एप्लिकेशन मेमोरी के मुकाबले ज्यादा मुश्किल हो जाता है।
यह मेरा विशिष्ट मामला नहीं है, लेकिन मैं यह इंगित करना चाहता हूं कि यह क्षमता महत्वपूर्ण है।
@adriaankoster, यदि आप वहां हैं, तो इस पोस्ट को पढ़ें। शायद आप मदद कर सकते हैं। – ilomambo