2011-01-24 19 views
8

जैसा कि मैंने getSharedPreferences (स्ट्रिंग, int) के लिए एपीआई विवरण में चेक किया है, दूसरी विशेषता एक्सेसिबिलिटी मोड को परिभाषित कर रही है और अनुमतियों को नियंत्रित करने के लिए डिफ़ॉल्ट ऑपरेशन, MODE_WORLD_READABLE और MODE_WORLD_WRITEABLE के लिए 0 या MODE_PRIVATE ले सकती है।साझा एंड्रॉइड एप्लिकेशन के बीच साझा किया जा सकता है?

लेकिन वहाँ एपीआई विवरण में इस छोटे से टिप्पणी है:

नोट: वर्तमान में इस वर्ग के (android.content.SharedPreferences) कई भर में उपयोग का समर्थन नहीं करता प्रक्रियाओं। इसे बाद में जोड़ा जाएगा।

मार्क एल मर्फी पुस्तक में

इसके अलावा "शुरुआत एंड्रॉयड 2" उन्होंने कहा:

(आखिरकार, वरीयताओं साझा करने योग्य एप्लिकेशन पर है, लेकिन कि के समय के रूप में समर्थित नहीं है हो सकता है यह लेखन)

मैं इतनी उलझन में हूं! क्या इसका मतलब यह है कि getSharedPrefrences का MODE_WORLD_READABLE और MODE_WORLD_WRITEABLE है लेकिन नवीनतम एपीआई स्तर में अभी भी समर्थित नहीं है ???

धन्यवाद! मिगन

उत्तर

7

मेरा पुस्तक संदर्भ उस टिप्पणी पर आधारित है।

इसके अलावा, कोई फ़ाइल MODE_WORLD_READABLE या (खराब) MODE_WORLD_WRITEABLE बनाना एक बुरा विचार है। आप सुरक्षा की कोई आशा खो देते हैं।

आप दो अनुप्रयोगों के बीच डेटा साझा करना चाहते हैं, वहाँ समाधान के असंख्य हैं, जैसे: AIDL द्वारा उजागर एक API साथ

  • सेवा
  • कमांड के माध्यम से अवगत कराया एक API साथ
  • सेवा startService() के माध्यम से भेजा और प्रतिक्रियाओं एक Messenger या createPendingResult()PendingIntent या कुछ
  • सामग्री प्रदाता
  • प्रसारण के माध्यम से भेजा Intents

उन सभी में से आप एकीकरण के लिए अनुमतियों को परिभाषित करने की अनुमति देते हैं और आपको पहुंच की ग्रैन्युलरिटी को नियंत्रित करने देते हैं।

+0

सुपर पूर्ण उत्तर के लिए धन्यवाद! मैं जे 2 एमई में बस उलझन में था, रिकॉर्डस्टोर को AUTHMODE_ANY को प्रमाणीकरण मोड सेट करके विभिन्न अनुप्रयोगों के बीच आसानी से साझा किया जा सकता है, हालांकि इसमें कोई सुरक्षा नहीं है और इसकी अनुशंसा नहीं की जाती है। Thats क्यों मुझे आश्चर्य हुआ कि एंड्रॉइड की Prefrences अभी तक MODE_WORLD_READABLE और MODE_WORLD_WRITEABLE का समर्थन नहीं करता है। – Migan

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