2010-01-01 15 views
8

मेरे ऐप में मुझे सभी आने वाले और आउटगोइंग संदेशों का इतिहास प्राप्त करने के लिए एसएमएस और एमएमएस लॉग दोनों से पूछताछ करने की आवश्यकता है। इस कोड को एसएमएस के लिए शानदार काम किया है:एमएमएस लॉग इन एंड्रॉइड

Cursor c = cr.query(Uri.parse("content://sms"), null, null, null, null); 

लेकिन जब मैं कोशिश निम्नलिखित मैं पूरी तरह से अलग परिणाम प्राप्त:

Cursor c = cr.query(Uri.parse("content://mms"), null, null, null, null); 

एसएमएस क्वेरी रिटर्न डेटा उस संदेश का पता (फोन नंबर) भी शामिल है, संपर्क नाम, संदेश विषय, संदेश निकाय, आदि ... एमएमएस के लिए एक ही क्वेरी नल या संख्यात्मक मान फ़ील्ड का एक समूह देता है जिसे मैं समझ नहीं सकता। मुझे वास्तव में फोन नंबर या उससे जुड़े संपर्क आईडी के साथ फोन पर मौजूद सभी एमएमएस संदेशों की एक सूची की आवश्यकता है, और यदि संदेश आने वाला या आउटगोइंग संदेश था। एसएमएस क्वेरी परिणामों में मैं address फ़ील्ड से फोन नंबर प्राप्त कर सकता हूं, और आने वाले/आउटगोइंग प्रकार type फ़ील्ड से प्राप्त कर सकता हूं लेकिन एमएमएस के लिए पूछताछ के दौरान इनमें से कोई भी मौजूद नहीं है।

क्या कोई अलग सामग्री उरी है जिसे मुझे इस प्रकार के एमएमएस डेटा के लिए पूछताछ की आवश्यकता है? किसी भी तरह की सहायता का स्वागत किया जाएगा।

संपादित करें: बस स्पष्ट करने के लिए, मुझे पूरी तरह से पता है कि यह एक असमर्थित सामग्री प्रदाता है। हालांकि, ऐसा करने का कोई समर्थित तरीका नहीं है क्योंकि मैं प्रति फोन/प्रति ओएस संस्करण के आधार पर इसका परीक्षण और समर्थन करने के लिए पूरी तरह से तैयार हूं। ट्रैक पर चर्चा रखने के लिए बस यह कहें कि यह प्रश्न एचटीसी ड्रीम (जी 1) या एचटीसी मैजिक (माई टच) पर एंड्रॉइड 1.6 के लिए विशिष्ट है। आप इस कार्य को उस विशिष्ट फोन और ओएस संस्करण पर कैसे पूरा करेंगे? या यदि उन पर संभव नहीं है, लेकिन मोटोरोला Droid पर एंड्रॉइड 2.0 पर यह संभव है, तो मुझे वह जानकारी भी बहुत उपयोगी लगेगी। लेकिन इस पर ध्यान दिए बिना, इस कार्य को समर्थित या असमर्थित तरीके से पूरा करने के तरीके के बारे में चर्चा करने दें और इस बात पर चर्चा न करें कि हमें उन सभी चीज़ों से दूर रहना चाहिए जो एपीआई द्वारा समर्थित नहीं हैं, जो कुछ है एंड्रॉइड चर्चा समूहों को छेड़छाड़ करने के लिए ढूंढें और जो मुझे लगता है कि कोई भी मदद करने के लिए बहुत कम प्रदान करता है। अगर मैं असमर्थित विधि का उपयोग कर रहा हूं, तो यह ठीक है, मुझे उस कार्य को पूरा करने की समर्थित विधि दिखाएं। यदि कोई समर्थित विधि नहीं है, तो एपीआई समर्थन मुझे एंड्रॉइड.permission.READ_SMS के माध्यम से एसएमएस पढ़ने की अनुमति का अनुरोध करने का समर्थन क्यों करता है?

+2

कृपया ध्यान रखें कि इनमें से कोई भी समर्थित नहीं है, और आपका एप्लिकेशन विभिन्न उपकरणों या भविष्य के एंड्रॉइड रिलीज़ के साथ टूट सकता है। एसएमएस कंटेंट प्रदाता एंड्रॉइड एसडीके का हिस्सा नहीं है, इसलिए डिवाइस निर्माताओं को इसे हटाने, इसे संशोधित करने, या अन्यथा इसे अपनाने के लिए स्वागत है, और मूल एंड्रॉइड टीम को ऐसा करने के लिए आपका स्वागत है। – CommonsWare

+0

मैं पूरी तरह से समझता हूं। अगर आपके पास एसएमएस लॉग पूछने का कुछ आधिकारिक रूप से समर्थित तरीका है तो मुझे इसमें स्विच करने में खुशी होगी। इस बीच में मैं बस मेरे लिए उपलब्ध चीज़ों के साथ काम करने की कोशिश कर रहा हूं। –

+0

यह भी देखें: http://stackoverflow.com/questions/2591530/contentobserver-on-content-sms-in-1-6 –

उत्तर

5

ये सामग्री यूआरआई हैं जिन्हें मैंने अतीत में उपयोग किया है। आपको वापस आने वाले मूल्यों के साथ परेशान होना होगा, और यह एमएमएस के हिस्सों को प्राप्त करने का एक लंबा रास्ता है, लेकिन उम्मीद है कि इससे मदद मिलेगी।

// root URI for MMS messages 
static final String MMS_CONTENT_URI = "content://mms"; 

// root URI for MMS and SMS threads 
public static final String MMS_SMS_CONTENT_URI = "content://mms-sms"; 

// URI of MMS inbox 
public static final String RECEIVED_MMS_CONTENT_URI = MMS_CONTENT_URI + "/inbox"; 

// URI where sent MMSes are stored 
public static final String SENT_MMS_CONTENT_URI = MMS_CONTENT_URI + "/sent"; 

// URI where sent MMSes are stored 
public static final String MMS_PART_URI = MMS_CONTENT_URI + "/part"; 

// URI for incoming SMSes (also triggers on MMSes) 
public static final String SMS_INBOX_URI = "content://sms/inbox"; 
+0

रुको, आपने 'SENT_MMS_CONTENT_URI' और 'MMS_PART_URI' के बीच क्या अंतर कहा था? –

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