दिलचस्प पोस्ट
अजगर का समय कितना सही है? ()? स्विंग अवयव रचना करना: मैं ActionListeners जोड़ने की क्षमता कैसे जोड़ूं? सेट अंतराल रोकें PHP में एक वैश्विक चर को कैसे घोषित करना है? Google मानचित्र API v2 के साथ ViewPager: रहस्यमय काले दृश्य ऐप्प पहली बार खोला जाता है, जब एक बार ही गतिविधि कैसे शुरू करें? पायथन में मल्टी प्रसंस्करण का उपयोग करते समय मुझे कैसे लॉग करना चाहिए? जावास्क्रिप्ट में parseInt (string) और संख्या (स्ट्रिंग) के बीच अंतर क्या है? मैं कैसे एक जावास्क्रिप्ट घटना क्लिक ट्रिगर कर सकते हैं एक फ्लेक्सबॉक्स के अंदर पाठ को कैसे खड़ी करना है? मैं कैसे IEnumerable <T> को कार्यान्वित करूं? जावा मेमोरी लीक को हल करने के लिए सामान्य रणनीति? उद्देश्य-सी में फ्लोट्स के साथ परेशानी Django में एक पृष्ठ पर एकाधिक रूपों को प्रबंधित करने का उचित तरीका एंड्रॉइड ऐप से फेसबुक पेज खोलें?

दो अनुप्रयोगों के बीच डेटा साझा करना

हाल ही में मेरे पास एक साक्षात्कार था जिसमें सवाल पूछा गया था "आप दो इंस्टॉल किए गए ऐप्स या एपीके के बीच डेटा कैसे साझा कर पाएंगे?"

इस प्रश्न के लिए मेरे पास कोई जवाब नहीं था। क्या कोई ऐसा करने का एक तरीका निर्धारित करने में मेरी सहायता कर सकता है …

वेब के समाधान से एकत्रित समाधान "दो अनुप्रयोगों के बीच डेटा साझा करना"

सामग्री प्रदाता अनुप्रयोगों के बीच डेटा साझा करने के लिए एक अच्छा तरीका है

आवेदन 1 से डेटा भेजें (उदाहरण के लिए: अनुप्रयोग 1 पैकेज का नाम "com.sharedpref1" है)।

SharedPreferences prefs = getSharedPreferences("demopref", Context.MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.putString("demostring", strShareValue); editor.commit(); 

अनुप्रयोग 2 में डेटा प्राप्त करें (आवेदन में साझा वरीयताओं से डेटा प्राप्त करने के लिए)

  try { con = createPackageContext("com.sharedpref1", 0);//first app package name is "com.sharedpref1" SharedPreferences pref = con.getSharedPreferences( "demopref", Context.MODE_PRIVATE); String your_data = pref.getString("demostring", "No Value"); } catch (NameNotFoundException e) { Log.e("Not data shared", e.toString()); } 

दोनों एप्लिकेशन मैनिफ़ेस्ट फ़ाइलों में समान साझा उपयोगकर्ता आईडी और लेबल जोड़ते हैं,

  android:sharedUserId="any string" android:sharedUserLabel="@string/any_string" 

दोनों समान हैं … और साझा उपयोगकर्ता लेबल को string.xml से होना चाहिए

इस उदाहरण की तरह

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.xxxx" android:versionCode="1" android:versionName="1.0" android:sharedUserId="any string" android:sharedUserLabel="@string/any_string"> 

मुझे संदेह है कि वह संभावित रूप से एंड्रॉइड विशिष्ट तरीकों जैसे कि सामग्री प्रदाता उत्तर की तलाश में थे।

अन्य विकल्प … एंड्रॉइड स्पेशल – रिमोट सर्विसेज जनरल – टीसीपी / आईपी कनेक्शन सामान्य – एसडी कार्ड पर एक स्थान पर लेखन

किसी विशिष्ट विधि के बारे में अधिक सुनने की देखभाल करें?

इसके अलावा आज एक साक्षात्कार के लिए इस सवाल को चुराना 🙂

यदि आप अनुप्रयोगों के बीच डेटा साझा करना चाहते हैं, तो सुनिश्चित करें कि आप उसी कुंजी के साथ साइन इन करें:

अनुमतियों के माध्यम से संहिता / डेटा साझा करना – एंड्रॉइड सिस्टम हस्ताक्षर-आधारित अनुमति प्रवर्तन प्रदान करता है, ताकि किसी एप्लिकेशन को किसी अन्य एप्लिकेशन पर कार्यक्षमता का पर्दाफाश किया जा सके जो किसी विशिष्ट प्रमाण पत्र के साथ हस्ताक्षरित हो। एक ही प्रमाण पत्र के साथ कई अनुप्रयोगों पर हस्ताक्षर करके और हस्ताक्षर-आधारित अनुमति जांच का उपयोग करके, आपके एप्लिकेशन कोड और डेटा को एक सुरक्षित तरीके से साझा कर सकते हैं।

इससे उद्धृत किया गया है: साइन इन करने के बारे में एंड्रॉइड डेवलपर पृष्ठ

यदि यह छोटी मात्रा में डेटा है तो आप इसे किसी इरादे से भेज सकते हैं।

सामग्री प्रदाता एंड्रॉइड घटक है, जिसका इस्तेमाल करना है यदि एक आवेदन दूसरे डेटा के साथ अपने डेटा को साझा करना चाहता है

नोट: किसी एप्लिकेशन द्वारा बनाई गई फ़ाइलें, SqliteDatabases, Sharedpreference फ़ाइलें केवल उस एप्लिकेशन के लिए निजी है अन्य अनुप्रयोग सीधे इसे एक्सेस नहीं कर सकता यदि प्रोग्रामर सामग्री प्रदाता का उपयोग करके डेटाबेस को उजागर करता है, तो केवल वह डेटा अन्य अनुप्रयोगों के लिए पहुंच योग्य है। सामग्री प्रदाता के साथ संचार करने के लिए सामग्री रिज़ॉल्वर का उपयोग करने के लिए