2009-06-13 8 views
24

मैंने BroadcastReceiver बनाया और इसे android.provider.Telephony.SMS_RECEIVED एक्शन फ़िल्टर के साथ कॉन्फ़िगर किया ताकि इसे हर बार फोन किया जा सके एक टेक्स्ट प्राप्त करता है।प्रेषित एसएमएस संदेशों के लिए एंड्रॉइड ब्रॉडकास्ट रिसीवर?

क्या मेरे आवेदन के लिए कुछ घटना/कार्रवाई या अन्य तरीका अधिसूचित किया जा सकता है जब भी फोन एक पाठ भेजता है (अधिमानतः इसे भेजने वाले एप्लिकेशन से स्वतंत्र)?

अभी तक एकमात्र विकल्प मैं देखता हूं कि सामग्री प्रदाता को content://sms/sent के लिए मतदान करना है जो मुझे सभी भेजे गए ग्रंथ भी नहीं देता है क्योंकि एप्लिकेशन इसे वहां नहीं डाल सकते हैं।

+0

एसएमएस संदेश भेजने के लिए एपीआई के रूप में (android.telephony.gsm.SmsManager) डेवलपर्स को सफलता प्राप्त करने या विफल होने पर प्रसारित करने के लिए कस्टम इरादे निर्दिष्ट करने की अनुमति देता है, मुझे नहीं लगता कि एक "एसएमएस संदेश भेजा जाना संभव है "इरादा। – Henning

+0

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

उत्तर

21

दुर्भाग्य से (वर्तमान में) कोई क्योंकि मानक एसएमएस आवेदन एक SmsManger का उपयोग करता है संदेश भेजने के लिए, लेकिन भेजा और वितरित उद्देश्य (SmsReceiver.class और MessageStatusReceiver.class क्रमशः) के लिए ठोस आंतरिक वर्गों को निर्दिष्ट एक BroadcastReceiver लागू करने के लिए तरीका है। ऐसा नहीं है कि यह किसी भी सांत्वना है, लेकिन आप में निम्नलिखित टिप्पणी पा सकते हैं एसएमएस आवेदन के source:

// TODO: Fix: It should not be necessary to 
// specify the class in this intent. Doing that 
// unnecessarily limits customizability.

सबसे अच्छा विकल्प संभवतः एक ContentObserver का उपयोग कर, मतदान content://sms/sent हो रहा है।

+0

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

+1

नहीं, दुर्भाग्य से। लेकिन मुझे लगता है कि * अवरुद्ध * संदेश भी ट्रिकियर होने जा रहा है। अगर मैं कुछ सोचता हूं तो मैं आपको बता दूंगा। इस बीच, stackoverflow.com पर एक प्रश्न पूछने का प्रयास करें ;-) –

+0

बेशक एक सामग्री ऑब्सर्वर केवल उन अनुप्रयोगों के साथ अच्छी तरह से खेलता है जो वास्तव में एसएमएस/एमएमएस सामग्री स्टोर का उपयोग करते हैं। कौन से मैसेजिंग ऐप्स (और सभी दुर्भावनापूर्ण ऐप्स) नहीं करते हैं। – Phil