2011-01-26 18 views
31

यहां शुरुआती एंड्रॉइड देव।एंड्रॉइड पर एसएमएस स्टोरेज का उपयोग कैसे करें?

मैं एक ऐप बनाने की कोशिश कर रहा हूं जो डिवाइस पर संग्रहीत एसएमएस संदेशों को पढ़ेगा और उसके बाद उपयोगकर्ता की आदतों को उनके आदतों के बारे में बताएगा (जैसे वे अक्सर संदेश, सामान्य शब्द, आदि)।

लेकिन मेरे ज्ञान के लिए, ऐसा करने का कोई तरीका प्रतीत नहीं होता है। मैंने फ़ोरम पर चारों ओर देखा है और अधिकांश लोग इनबॉक्स तक पहुंचने के बारे में बात करते हैं, जहां आप उन संदेशों को पा सकते हैं जिन्हें उपयोगकर्ता ने नहीं पढ़ा है। फिर डिफ़ॉल्ट ऐप और तृतीय-पक्ष (उदाहरण के लिए हैंडेंट) एक ही ग्रंथ प्रदर्शित कर सकता है? वे अपना खुद का डेटाबेस नहीं रखते हैं क्योंकि हैंडेंट सभी ग्रंथों को ताजा इंस्टॉल पर प्रदर्शित करेगा।

tl; डॉ: मैं एंड्रॉइड डिवाइस पर एसएमएस संदेशों को कैसे पढ़ूं, विशेष रूप से संदेश जो पहले पढ़े गए हैं।

+1

डेटा आप अनुरोध तक पहुँचने का कोई दस्तावेज और समर्थित साधन नहीं है। अनियंत्रित और असमर्थित साधन हैं, जैसे सेबस्टियन पी द्वारा लिखी गई सामग्री। Google ने स्पष्ट रूप से संकेत दिया है कि ऐसा करना एक बुरा विचार है: http://android-developers.blogspot.com/2010/05/be-careful-with -content-providers.html – CommonsWare

+1

मुझे लगता है कि यह बताता है कि मुझे उदाहरण खोजने में ऐसी परेशानी क्यों थी। ईमानदारी से, मैं वास्तव में इस अभ्यास को समझ में नहीं आता। Google सामग्री प्रदाता जैसे उपयोगी कोड क्यों बनाते हैं और फिर उस कोड को रखने के लिए कोई प्रतिबद्धता नहीं बनाते हैं या हार्डवेयर निर्माताओं द्वारा उस कोड का उपयोग करने की आवश्यकता होती है? मुझे लगता है कि मैं वास्तव में "विखंडन" मुद्दे को समझना शुरू कर रहा हूं। – eternalmatt

उत्तर

24

एसएमएस/एमएमएस डेटाबेस तक पहुंचने के ठोस उदाहरण के लिए, gTalkSMS पर एक नज़र डालें।

+0

gTalkSMS उदाहरण ऐसा लगता है जो मैं खोज रहा हूं। मेरा ट्यूटोरियल सिर्फ उस बॉक्स के बारे में था जो मुझे विश्वास है। धन्यवाद! – eternalmatt

+2

भविष्य के दर्शकों के लिए, gTalkSMS में एक बेहद सहायक वर्ग [SmsManager] है (https://code.google.com/p/gtalksms/source/browse/src/com/googlecode/gtalksms/cmd/smsCmd/SmsManager.java) कक्षा। – eternalmatt

-5

, निम्न कार्य करें here से SQLLite डाटाबेस ब्राउज़र डाउनलोड:

अपने डाटाबेस का पता लगाएँ। अपने फोन में फाइल करें।

फिर, जैसे ही आप प्रोग्राम इंस्टॉल करते हैं: "डेटा ब्राउज़ करें" पर जाएं, आप वहां सभी एसएमएस देखेंगे !!

आप वास्तव में डेटा को एक्सेल फ़ाइल या एसक्यूएल में निर्यात कर सकते हैं।

+5

एसएमएस डेटाबेस का पूर्ण पथ है: /data/data/com.android.providers/telephony/databases/mmssms.db इस पथ को तब तक एक्सेस नहीं किया जा सकता जब तक डिवाइस रूट न हो और एप्लिकेशन सुपरसुर अनुमति का अनुरोध करता हो। – Xarph

+6

प्रश्न यह है कि प्रोग्रामेटिकल तरीके से यह कैसे करें ... –

+0

^हालांकि यह गैर-प्रोग्रामेटिकल में देख रहे लोगों के लिए उपयोगी हो सकता है, हालांकि यह इस संदर्भ का जवाब नहीं देता है कि यह संदर्भ में जोड़ता है। – Enrico

2

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

Here is the link that goes into depth on the Sms Manager

+1

लेकिन यदि ओपी एक एसएमएस ऐप लिख रहा है, तो एसएमएस पढ़ने के लिए अनुमति देने का अनुरोध करने वाला एक एसएमएस ऐप "असामान्य" नहीं माना जाना चाहिए, है ना? –

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