2011-05-20 14 views
6

के साथ ऐप्स के बीच अस्थायी फ़ाइलें साझा करना यदि मैं अपने एप्लिकेशन की कैश निर्देशिका में एक temp फ़ाइल बना सकता हूं, तो उदाहरण के लिए, इसे अनुलग्नक के रूप में ईमेल नहीं कर सकता। ऐसा इसलिए है क्योंकि अन्य ऐप को फ़ाइल पढ़ने की अनुमति नहीं है।कोई एसडी कार्ड

एपीआई 9 और ऊपर में, मैं फ़ाइल को सेट रीडेबल (सत्य, गलत) के साथ दुनिया को पढ़ने योग्य सेट करने के लिए सेट कर सकता हूं। दुर्भाग्यवश, मैं एपीआई स्तर 7+ को लक्षित कर रहा हूं। मैं एक एसडी कार्ड की उपस्थिति पर भरोसा नहीं करना चाहता, इसलिए अगर कोई कार्ड मौजूद नहीं है तो मैं इसे स्टोर करने के लिए getExternalStorageDir() द्वारा वापस स्थान का उपयोग नहीं कर सकता।

मैं एक एसडी कार्ड मौजूद होने के बावजूद एक अस्थायी फ़ाइल कैसे उत्पन्न और साझा कर सकता हूं?

उत्तर

8
final String FILENAME = "file.tmp"; 
final String someData = "File data"; 

FileOutputStream fos = openFileOutput(FILENAME, 
             Context.MODE_WORLD_WRITEABLE | 
             Context.MODE_WORLD_READABLE); 
fos.write(someData.getBytes()); 
fos.close(); 

http://developer.android.com/reference/android/content/Context.html#openFileOutput(java.lang.String,%20int)

+0

बस एक नोट के रूप में, निर्देशिका इस फ़ाइल में संग्रहीत किया जाता है) getFilesDir (द्वारा दिया जाता है, * नहीं * getCacheDir()। एक आकर्षण की तरह काम करता है। धन्यवाद! –

+2

ऐसा लगता है कि Context.MODE_WORLD_WRITEABLE को एसडीके 17 (http://developer.android.com/reference/android/content/Context.html#MODE_WORLD_READABLE) के रूप में बहिष्कृत किया गया है अब अनुशंसित समाधान क्या है? इरादों के निर्माण के दौरान – alextk

+1

@alex शायद इरादा। FLAG_GRANT_READ_URI_PERMISSION। – soulseekah

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