/ / निजी डेटा को सार्वजनिक स्थान पर सहेजें - जावा, एंड्रॉइड

निजी डेटा को सार्वजनिक स्थान पर सहेजें - जावा, एंड्रॉइड

मैं पीडीएफ रीडर के साथ अपनी पीडीएफ फाइल को खोलने की कोशिश कर रहा हूं, मैं इस बारे में अधिक खोज कर रहा हूं कि मैं यह कैसे कर सकता हूं, बहुत से उत्तर मिले लेकिन हर उत्तर बताता है कि उस फाइल को "एसडी कार्ड" में सहेजें।

एसडी कार्ड के लिए फ़ाइल सहेजना अच्छा विचार है लेकिनसमस्या यह है कि यदि उपयोगकर्ता ने अपने फोन में एसडी कार्ड स्थापित नहीं किया है। वर्तमान समय में कई फोन में बड़ी इनबिल्ट मेमोरी है उदाहरण के लिए: सैमसंग गैलेक्सी एस 3, एचटीसी वन वी, सैमसंग गैलेक्सी नोट, सोनी एक्सपीरिया एस और कई फोन।

तो मेरा सवाल है: इन फोनों में पहले से ही एक बड़ी इनबिल्ट मेमोरी है, इसलिए उपयोगकर्ता को इसके साथ एसडी कार्ड जोड़ने की आवश्यकता नहीं है (यह उपयोगकर्ता पर निर्भर करता है)। इस मामले में कौन सा स्थान अन्य अनुप्रयोगों के लिए सुलभ है सार्वजनिक स्थान (एसडी कार्ड) की तरह।

जब मैंने अपनी समस्या की खोज की तो मुझे यह मिला संपर्क जो Android प्लेटफ़ॉर्म द्वारा प्रदान किए गए एप्लिकेशन डेटा को सहेजने के स्थान के बारे में बताता है।

Android प्लेटफ़ॉर्म ऐप डेटा को बचाने के लिए ये विकल्प प्रदान करता है:

  1. साझा प्राथमिकताएं
  2. आंतरिक स्टोरेज
  3. बाह्य भंडारण
  4. SQLite डेटाबेस
  5. नेटवर्क कनेक्शन

एंड्रॉइड निजी एप्लिकेशन को अन्य एप्लिकेशन को उजागर करने का एक तरीका प्रदान करता है - एक सामग्री प्रदाता के साथ

मैं सामग्री प्रदाता के बारे में पढ़ता हूं, लेकिन मुझे समझ नहीं आया कि यह कैसे काम करता है।

यदि कोई ट्यूटोरियल दिखाता है कि यह कैसे काम करता है तो कृपया उस ट्यूटोरियल लिंक को प्रदान करें या यदि यह अन्य तरीके से किया जा सकता है तो कृपया मुझे बताएं कि कैसे।

किसी भी तरह की सहायता को आभार समझेंगे। धन्यवाद!

उत्तर:

उत्तर № 1 के लिए 1

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

एक और तरीका जो आप आज़मा सकते हैं (I हेवन "टी ने यह कोशिश की, अभी इसके बारे में सोचा) एक अस्थायी फ़ाइल के लिए पीडीएफ लिखना है और फिर उस अस्थायी फ़ाइल को साझा करना है।"

File.createTempFile () एक अस्थायी फ़ाइल बनाएगा। आप यह देखने के लिए प्रयोग कर सकते हैं कि उस अस्थायी फ़ाइल को कहाँ सहेजा गया है और फिर यदि वह स्थान अन्य ऐप्स द्वारा उपलब्ध है।


जवाब के लिए 0 № 2

आप एसडीकार्ड के बजाय, बचत के लिए निम्न तकनीक का उपयोग कर सकते हैं।

  1. वरीयताएँ साझा की पूर्व: - SharedPreferences Demo_sp = getApplicationContext () .getSaredPreferences ("डेमो", MODE_PRIVATE); स्ट्रिंग डेमो = Demo_sp.getString ("डेमो", "डेमो");
  2. आंतरिक स्टोरेज
  3. SQLite डेटाबेस, एक बार जब आप sqlite में कुछ भी संग्रहीत करते हैं, तो यह आपके फोन में .db फ़ाइल बनाएगा, यू उस तक पहुंच सकता है

जवाब के लिए 0 № 3

मेरे ऐप में मैं sdCard का उपयोग केवल तभी करता हूं जब उपलब्ध हो और फ़ोन मेमोरी अन्यथा।

फ़ोन मेमोरी के लिए आप एक फ़ाइल ऑब्जेक्ट प्राप्त कर सकते हैं जैसे:

File file=new File(context.getFilesDir(), FILENAME);

जहां संदर्भ एक संदर्भ वस्तु है। फिर आप इस फ़ाइल को पढ़ने / लिखने के संचालन के साथ एक नियमित जावा फ़ाइल की तरह उपयोग कर सकते हैं।

एसडी कार्ड स्टोरेज के लिए आपको सबसे पहले आपको यह घोषणा करनी होगी:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

यदि बाह्य संग्रहण उपलब्ध है तो आपको यह देखना चाहिए:

public static boolean hasSdCard(){
return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
}

तब आप एक फ़ाइल ऑब्जेक्ट प्राप्त कर सकते हैं

File file = new File(Environment.getExternalStorageDirectory() + DIRECTORY + FILENAME);