मैं एक एंड्रॉइड एप्लिकेशन विकसित कर रहा हूं जो एक साझा प्रतिभा फ़ाइल के माध्यम से डिवाइस पर स्थापित अन्य अनुप्रयोगों के साथ इंटरैक्ट करता है।विभिन्न अनुप्रयोगों में एंड्रॉइड साझा प्राथमिकताएं
यह फ़ाइल MODE.WORLD_READABLE के रूप में बनाई गई थी और प्रत्येक स्थापित एप्लिकेशन की एक सामान्य परिभाषित नाम और संपत्ति (उस विशिष्ट संपत्ति के लिए मूल्य क्या है) के साथ अपनी फ़ाइल है।
उदाहरण के लिए, एपीए और एपबी में प्रत्येक व्यक्ति को "app_shared_file.xml" नामक एक साझा फ़ाइल होनी चाहिए जिसमें संपत्ति "property_shared_file" हो।
मेरे आवेदन से मैं पहले इस फ़ाइल तक पहुंचना चाहता हूं और उस संपत्ति मूल्य को पढ़ना चाहता हूं, और उस परिणाम के आधार पर मैं अपना निर्माण/अद्यतन करना चाहता हूं।
फिर भी, मुझे इसे प्राप्त करने में कुछ समस्याएं आ रही हैं। Android दस्तावेज़ पर मुझे लगता है कि:
पुन: प्राप्त करें और पकड़ वरीयताओं की सामग्री को फ़ाइल 'नाम', एक SharedPreferences जिसके माध्यम से आप प्राप्त कर सकते हैं और अपने मूल्यों को संशोधित लौटने। SharePreferences ऑब्जेक्ट का केवल एक उदाहरण ऑब्जेक्ट उसी नाम के लिए किसी भी कॉलर को पर वापस कर दिया गया है, जिसका अर्थ है कि वे जैसे ही वे बनाए जाते हैं, एक दूसरे के संपादन देखेंगे।
अन्य एप्लिकेशन साझा प्राथमिकता फ़ाइल पढ़ने के बाद, जब मैं अपनी संपादन को संपादित करने के बजाय सिस्टम को बनाने/अपडेट करने का प्रयास करता हूं, तो मैंने पिछले पढ़ने के लिए उपयोग किया है। यदि इसके विपरीत, मैं अपना अद्यतन करके शुरू करता हूं और बाद में अन्य ऐप पढ़ता हूं - दूसरे को पढ़ने के बजाय, जिस पर पहुंचा जा रहा है वह मेरा है।
कोई विचार?
कोड मैं साझा वरी पढ़ने के लिए उपयोग कर रहा हूँ है [जहां PackageName अन्य एप्लिकेशन pckg है]:
Context con = context.createPackageContext(packageName, Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences pref = con.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_WORLD_READABLE);
pref.getBoolean(SHARED_PREF_PROP, false);
कोड मैं एप्लिकेशन साझा वरी में लिखने के लिए उपयोग कर रहा हूँ है:
SharedPreferences prefs= getSharedPreferences(SHARED_PREF_NAME, context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(SHARED_PREF_PROP, value);
editor.commit();
अग्रिम धन्यवाद।
हां, दो अलग-अलग एप्लिकेशन हैं और प्रत्येक एप्लिकेशन की अपनी साझा प्राथमिकता फ़ाइल को अपने साझा_prefs फ़ोल्डर में संग्रहीत किया जाता है। हां, मुझे पैकेजमैनेजर के माध्यम से अन्य एप्लिकेशन का पैकेज नाम पता है, लेकिन मेरे पास यह जानने का कोई विकल्प नहीं है कि कौन सी गतिविधि/कक्षा इसे संभालेगी। मैंने पहले से ही उस लिंक को देखा था, यहां समस्या एक ही नाम के साथ दो अलग-अलग साझा किए गए प्रीफ़्स तक पहुंच है - मेरा और दूसरा एप्लिकेशन। एक खोलने के बाद, जब मैं दूसरे को संदर्भ बिंदु को खोलने की कोशिश करता हूं, जिसे प्रारंभ में खोला जाता है और जिसे संदर्भ के रूप में नहीं भेजा जाता है। – user1683087