5

मैं संपर्क बैकअप और सिंक पर काम कर रहा हूं।संपर्क बैकअप और सिंक अनुप्रयोग

लक्ष्य सभी संपर्कों के सभी विवरण एक सर्वर (कस्टम प्रोटोकॉल परिभाषित) को बैकअप के रूप में भेजना है।

आवेदन के प्रारंभिक लॉन्च के दौरान, सभी संपर्कों को कतारबद्ध किया जाएगा और सर्वर को भेजा जाएगा। और उसके बाद, एक पृष्ठभूमि सेवा हर समय चल रही है जो नए संपर्क जोड़/संपर्क अपडेट को सुनती है, और यह नया/अद्यतन संपर्क पृष्ठभूमि सेवा द्वारा सर्वर पर भेजा जाएगा।

मैं रिकॉर्ड्स लाने के लिए RawContactsEntity का उपयोग कर रहा हूं।

मैंने संपर्क जोड़ या संपर्क-परिवर्तन की अधिसूचना प्राप्त करने के लिए कच्चे संपर्क/डेटा तालिकाओं पर ContentObserver का उपयोग करने का प्रयास किया। लेकिन, AFAIK, ContentObserver पूरी तरह से तालिका में परिवर्तित डेटा की अधिसूचना (onChange()) देता है और व्यक्तिगत रिकॉर्ड की आईडी नहीं।

अब मेरी समस्या यह है कि सटीक आईडी के बदले/नए रिकॉर्ड कैसे प्राप्त करें?

मैंने मूल संपर्क तालिका के साथ तुलना करने के लिए बैकअप तालिका बनाने और बदले गए रिकॉर्ड प्राप्त करने के बारे में सोचा। लेकिन जैसे-जैसे संपर्कों की संख्या में वृद्धि होती है, प्रदर्शन काफी हद तक मर जाएगा और इससे बैटरी जीवन में भी बाधा आ जाएगी।

क्या आप मुझे सुझाव दे सकते हैं, प्रदर्शन और स्मृति उपयोग बिंदु से इस संपर्क बैकअप ऑपरेशन को प्राप्त करने का सबसे अच्छा तरीका? क्या संपर्क सिंक ऑपरेशन के लिए कोई अन्य तरीका है?

अगर कोई ऐसा उदाहरण साझा कर सकता है जो इसमें मेरी मदद कर सकता है तो यह बहुत उपयोगी होगा।

उत्तर

0

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

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