मैं एंड्रॉइड के एसडीकार्ड पर मौजूद फ़ाइलों को लॉक करना चाहता हूं। मुझे उन्हें लॉक करने की आवश्यकता है, इसलिए मेरे सॉफ़्टवेयर को छोड़कर कोई भी कॉपी चाल को हटा सकता है या उन्हें ब्लूटूथ या किसी अन्य तरीके से भेज सकता है। मैं इसे कैसे कर सकता हूं?जावा कोड का उपयोग करके एंड्रॉइड में फ़ाइलों को कैसे लॉक कर सकता हूं?
उत्तर
मुझे लगता है कि आप फ़ाइल एन्क्रिप्ट करना चाहते हैं। जबकि फ़ाइल को अभी भी चारों ओर ले जाया जा सकता है, यह आपके आवेदन के अलावा कुछ भी बेकार होगा। लोग प्रतिलिपि बनाने, स्थानांतरित करने, हटाने में सक्षम होंगे लेकिन सामग्री से समझौता नहीं किया जाएगा।
आप नियमित एसडी कार्ड का उपयोग करके किसी भी प्लेटफ़ॉर्म (अकेले एंड्रॉइड को छोड़कर) पर ऐसा नहीं कर सकते हैं। माफ़ कीजिये!
एंड्रॉइड में lock a file का कोई तरीका नहीं है; यहां तक कि अगर वहां था, तो फ़ाइलें केवल तब लॉक हो जाएंगी जब आपका एप्लिकेशन चल रहा था जो उपयोगकर्ता द्वारा आपके ऐप को शुरू नहीं करने पर अन्य ऐप्स को फ़ाइल तक नहीं पहुंच पाएगा।
एसडी कार्ड आमतौर पर एफएटी (या एफएटी 32) के साथ स्वरूपित होते हैं और यह एंड्रॉइड के मामले में होता है। एफएटी बहुत सीमित फ़ाइल अनुमतियां प्रदान करता है ताकि आप इस तरह से फ़ाइलों तक पहुंच प्रतिबंधित नहीं कर सकें। दोबारा, भले ही आप ऐसा कुछ कर सकें, अगर उपयोगकर्ता अपने फोन से एसडी कार्ड ले लेता है और उसे अपना पीसी डालता है तो यह कोई सुरक्षा प्रदान नहीं करेगा।
यदि आप अपने एप्लिकेशन की फाइलें निजी रखना चाहते हैं तो आपको उन्हें अपने आवेदन के लिए आरक्षित क्षेत्र में फोन के आंतरिक संग्रहण में रखना होगा। प्रत्येक एप्लिकेशन एक अलग उपयोगकर्ता आईडी के साथ चलता है और प्रत्येक एप्लिकेशन की डेटा निर्देशिका UNIX- शैली फ़ाइल अनुमतियों का उपयोग करके संरक्षित होती है जो अन्य अनुप्रयोगों को पढ़ने से रोकती है। इसलिए जब यह आपकी फ़ाइलों तक पहुंचने वाले अन्य अनुप्रयोगों को रोक देगा, तो यह एक उचित रूप से निर्धारित उपयोगकर्ता को बंद नहीं करेगा, जिसमें उनके फोन की रूट पहुंच के साथ उन्हें बंद कर दिया जाएगा।
कैसे फ़ोन के आंतरिक संग्रहण में फ़ाइलों को स्टोर करने पर जानकारी के लिए Context.openFileInput()
, Content.openFileOutput()
और Context.getFilesDir()
तरीकों पर एक नजर डालें।