दिलचस्प पोस्ट
प्रोग्राम निष्पादन की शुरुआत में ब्रेकपॉइंट को कैसे सेट करें पायथन में '@ =' प्रतीक क्या है? जावा एफएक्स में स्मृति रिसाव का अनुकूलन क्यों इकाईयों को LINQ विधि 'System.String toString () पहचान नहीं है? जब तक मैं छोड़ना नहीं चाहता एक raw_input दोहराए जाने के लिए? सी ++ में एक बेस के अतिभारित फ़ंक्शन को ओवरराइड करना YUV-> आरजीबी (छवि प्रोसेसिंग) -> YVV को प्रिव्यूफ़्रेम में एंड्रॉइड के दौरान परिवर्तित करना है? गतिशील आकार के साथ माउस का पता लगाएं कंस्ट्रक्टर को कोई कॉल क्यों नहीं है? आखिरी तर्क को एक शेल स्क्रिप्ट में लेना हमें प्रतिलिपि कन्स्ट्रक्टर का उपयोग कब करना है? तारांकन चिह्न के रूप में पासवर्ड कैसे गूँज गया है Global.aspx के Application_Start में पूर्ण होस्ट नाम + पोर्ट नंबर कैसे प्राप्त करें? scanf () बफर में नई लाइन को छोड़ देता है Scala में अंतर्निहित समझ

2 एंड्रॉइड ऐप्स के बीच SQLite डेटाबेस साझा करें?

मुझे 2 ऐप्स के बीच एक एकल डाटाबेस साझा करने की आवश्यकता है मुझे पता है कि डेटाबेस / डेटा / डेटा / MY_PACKAGE / डाटाबेस / पर बनाया जाएगा चूंकि संकुल के नाम अलग-अलग हैं, जब मैं किसी ऐप पर डेटाबेस बनाता हूं, तो क्या एक पैकेज नाम के पथ को परिभाषित करना संभव है? धन्यवाद।

Solutions Collecting From Web of "2 एंड्रॉइड ऐप्स के बीच SQLite डेटाबेस साझा करें?"

आप निश्चित रूप से 2 ऐप्स के बीच एक एकल डेटाबेस साझा कर सकते हैं

क्षुधा के बीच डेटा साझा करने के लिए (दोनों ही प्रकाशक द्वारा जारी किए गए हैं) आपको दोनों ऐप्स के एंड्रॉइड मैनिफ़ेस्ट.एक्सएमएम में एक साझा उपयोगकर्ता आईडी निर्दिष्ट करना होगा।

<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:sharedUserId="my.app" ... > 

(यह undocumented है, लेकिन साझा उपयोगकर्ता आईडी को कम से कम एक डॉट विभाजक के साथ एक स्ट्रिंग होने की आवश्यकता है)

बाकी आसान है, और आपको डेटाबेस पथ के साथ घूमने की ज़रूरत नहीं है। बस दोनों Apps में एक ही DBAdapter का उपयोग करें डेटाबेस को होस्ट करने वाले ऐप में, डीबीएडैप्टर को मूल संदर्भ के साथ बुलाओ।

 DBadapter hostDBAdapter = new DbAdapter(getApplicationContext()); performerDBadapter.open(); 

दूसरे एप में, डाटाबेस होस्टिंग ऐप के संदर्भ के साथ डेटाबेस एक्सेस करें
सबसे पहले, साझा संदर्भ को परिभाषित करें:

 Context sharedContext = null; try { sharedContext = this.createPackageContext("replace.with.host.package.name", Context.CONTEXT_INCLUDE_CODE); if (sharedContext == null) { return; } } catch (Exception e) { String error = e.getMessage(); return; } 

फिर साझा संदर्भ के साथ DBAdapter खोलें:

 DbAdapter sharedDBadapter = new PerformerDbAdapter(sharedContext); sharedDBadapter.open(); 

अंतिम नोट के रूप में, अगर आपका डेटाबेस मैनिफेस्ट में साझा उपयोगकर्ता आईडी सेट करने के लिए पहले मौजूद है, तो आपको एक भौतिक डिवाइस पर एप्लिकेशन को अनइंस्टॉल / पुनर्स्थापित करने की आवश्यकता होगी, ऐसा न हो कि आप अपने डेटाबेस (स्क्लिट त्रुटि 14) से खुद को लॉक कर लें। दूसरी ओर, एमुलेटर, अधिक क्षमा साबित हो सकता है। नीचे की पंक्ति, यदि आपके ऐप एंड्रॉइड मार्केट में प्रकाशित किए गए हैं, तो एक बाद में यूजर आईडी सेट करना काम नहीं करेगा।

उम्मीद है की यह मदद करेगा।

डाटाबेस पथ प्रत्येक अनुप्रयोग के लिए निजी है और जहाँ तक मुझे पता है कि यह सभी अनुप्रयोगों में प्रत्यक्ष रूप से उपयोग करना संभव नहीं है।

हालांकि एक दृष्टिकोण यह है कि एक आवेदन एक सामग्री प्रदाता की सहायता से दूसरे डेटाबेस के लिए डेटाबेस का उपयोग करता है। अगर आपके लिए यह काम करता है तो देखें

सामग्री प्रदाता डेटा को स्टोर और पुनः प्राप्त करते हैं और इसे सभी एप्लिकेशन के लिए सुलभ बनाते हैं। वे सभी अनुप्रयोगों में डेटा साझा करने का एकमात्र तरीका हैं; वहां कोई सामान्य स्टोरेज एरिया नहीं है जो सभी एंड्रॉइड पैकेज का उपयोग कर सकते हैं।

जब तक आप दोनों एप्लिकेशन पर एक ही प्रमाण पत्र का उपयोग करते हैं, तब तक आपके एप्लिकेशन एक ही प्रक्रिया पर चलेंगे और एक ही आवेदन के रूप में व्यवहार करेंगे और यह एंड्रॉइड प्रलेखन के इस खंड की जांच करेगा http://developer.android.com/tools/publishing/app-signing.html #रणनीतियाँ