2013-02-05 18 views
8

मुझे वास्तव में समझ में नहीं आता क्यों सामग्री पर्यवेक्षक उन परिवर्तनों को सुनता है जो संपर्क जानकारी से संबंधित नहीं हैं।संपर्क परिवर्तन सुनने के लिए ContentObserver

मैं बस यूआरआई के लिए पंजीकृत जो मैं परिवर्तन सुनने चाहता हूँ:

getContentResolver().registerContentObserver(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, true, contactsObserver); 

लेकिन किसी को या टेक्स्टिंग किसी को बुला के बाद, यह चलाता है और ContentObserver में onChange प्रणाली को बुलाती है। तो मुझे अपने आवेदन के साथ सभी संपर्क सूची को फिर से सिंक करने की आवश्यकता है हालांकि मुझे करने की आवश्यकता नहीं है।

केवल क्षेत्र मैं कर रहा हूँ रुचि में:

  • ContactsContract.CommonDataKinds.Phone.CONTACT_ID
  • ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
  • ContactsContract.CommonDataKinds.Phone.NUMBER

इस डीबी वस्तुओं के परिवर्तनों को सुनने के लिए मुझे किस तरह के बदलावों को लागू करना चाहिए?

+0

इसके लिए कोई समाधान मिला, यदि हां कृपया मुझे मार्गदर्शन करें .. मुझे पिछले 1 सप्ताह – user3475052

+0

@ user3475052 से एक ही समस्या है, तो हालिया उत्तर में आपकी रुचि हो सकती है। – Boris

+0

अभी भी इस मुद्दे के साथ सामना करना पड़ रहा है। – GensaGames

उत्तर

0

संपर्क डेटाबेस में एक क्षेत्र है ContactsContract.Contacts.TIMES_CONTACTED यह फ़ील्ड हर बार जब आप अपनी संपर्क सूची में किसी से संपर्क करते हैं तो अपडेट किया जाता है।

अपने क्षेत्र का उपयोग करके इस क्षेत्र को अपडेट करना भी संभव है, जिसका अर्थ है कि यदि आप इस क्षेत्र को अपडेट करने वाले ऐप का उपयोग करके किसी भी संपर्क से संपर्क करते हैं, तो आपकी onChange() विधि कॉल की जाएगी।

+0

उदाहरण के लिए, इस तरह के अधिक फ़ील्ड हैं, 'ContactContract.ContactOptionsColumns.LAST_TIME_CONTACTED'। –

+0

यह एक बहुत पुराना सवाल है, यकीन नहीं है कि ओपी अभी भी इंतजार कर रहा है, लेकिन शायद @ user3475052 में दिलचस्पी होगी? – Boris