android - i cannot catch SMS -


  सार्वजनिक वर्ग SMSWidget AppWidgetProvider विस्तारित {निजी स्थिर अंतिम स्ट्रिंग queryString = "@inpion"; निजी स्थिर अंतिम स्ट्रिंग SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; @Receive पर सार्वजनिक शून्य को ओवरराइड करें (संदर्भ संदर्भ, आशय इरादा) {// एसएमएस संदेश प्राप्त करें यदि (intent.getAction ()। बराबर (SMS_RECEIVED)) {बंडल बंडल = intent.getExtras (); अगर (बंडल! = नल) {ऑब्जेक्ट [] pdus = (ऑब्जेक्ट []) बंडल.गेट ("पीडस"); Int pduslen = pdus.length; एसएमएस मेसेज [] संदेश = नया एसएमएस संदेश [पीडीएसएलएन]; स्ट्रिंग str = ""; (इंट आई = 0; आई & lt; pduslen; i ++) के लिए (संदेश [i] = SmsMessage.createFromPdu ((बाइट []) पीडीयू [i]); कोशिश {str + = नए स्ट्रिंग (संदेश [i] .getMessageBody ()। GetBytes (), "GB2312"); } पकड़ (असमर्थित एन्कोडिंग अपवाद ई) {// TODO स्वत: उत्पन्न होल्डिंग ब्लॉक e.printStackTrace (); }} के लिए (एसएमएसएम संदेश संदेश: संदेश) {स्ट्रिंग msg = संदेश.जेटमसेजबॉडी (); लॉग डी। ("====== संदेश =", messages.toString ()); If (msg.toLowerCase ()। BeginWith (queryString)) {लॉग डी। ("====== एसएमएस रीसिवेड ======", "ठीक"); // देखें नया संदेश रिमोट वीज आर.वी.; AppWidgetManager appWidgetManager = AppWidgetManager.getInstance (संदर्भ); घटक नाम smsWidget = नया घटकनाम (संदर्भ, SMSWidget.class); आरवी = नया रिमोट वीज (context.getPackageName (), आर। लय आउट.मैन); Rv.setTextViewText (R.id.catch_sms, "msg:" + msg); AppWidgetManager.updateAppWidget (smsWidget, rv); // हटाना एसएमएस का प्रयास करें {उरी uri एसएमएस = उरी.पार्स ("सामग्री: // एसएमएस / इनबॉक्स"); कर्सर c = context.getContentResolver ()। क्वेरी (यूरी एसएमएस, रिक्त, रिक्त, रिक्त, रिक्त); If (c! = Null) {// do {int threadId = c.getInt (1); लॉग डी। ("=== धागा आयडी:", थ्रेड आयड + ""); Int a = context.getContentResolver ()। हटाएं (उरी। पीआरएसई ("सामग्री: // एसएमएस / वार्तालाप /" थ्रेड आईडी), रिक्त, रिक्त;); लॉग डी। ("=== ए:", ए + ""); //} जबकि (c.moveToNext ()); } Else {Log.d ("= no =", c.toString ()); }} पकड़ (अपवाद ई) {e.printStackTrace (); }}}} Android.xml: & lt; एप्लिकेशन एंड्रॉइड: आइकन = "@ ड्रॉएबल / आइकन" एंड्रॉइड: label = "@ string / app_name" & gt; & Lt; रिसीवर एंड्रॉइड: name = "। SMSWidget" android: label = "@ string / app_name" & gt; & LT; आशय-फ़िल्टर & gt; & Lt; एक्शन एंड्रॉइड: name = "android.provider.Telephony.SMS_RECEIVED" / & gt; & Lt; एक्शन एंड्रॉइड: name = "android.appwidget.action.APPWIDGET_UPDATE" / & gt; & Lt; / आशय-फ़िल्टर & gt; & Lt; मेटा-डेटा एंड्रॉइड: name = "android.appwidget.provider" एंड्रॉइड: resource = "@ xml / catch_sms_widget_provider" / & gt; & Lt; / रिसीवर & gt; & Lt; / आवेदन & gt; & Lt; उपयोग-अनुमति एंड्रॉइड: name = "android.permission.RECEIVE_SMS" / & gt; & Lt; उपयोग-अनुमति एंड्रॉइड: name = "android.permission.WRITE_SMS" / & gt; & Lt; उपयोग-अनुमति एंड्रॉइड: name = "android.permission.READ_SMS" / & gt; & Lt; उपयोग- sdk एंड्रॉइड: minSdkVersion = "5" / & gt;  

मेरे ऐप में, मैं एसएमएस भेजता हूं लेकिन होम स्क्रीन में, ऐपडब्ल्यूडगेट इसे प्राप्त नहीं कर पाता, केवल सूचना मुझे सूचित कर सकती है, मैं अपने ऐप विजिट में संदेश फ्रिस्ट को प्राप्त करना चाहता हूं सूचना पट्टी में दिखाई नहीं देता , धन्यवाद?

मेरे कोड msg.toLowerCase () में। StartWith (queryString) canot रन, इसलिए मैं इसे एक्सएमएल इंटेंट-फिल्टर एंड्रॉइड में एक ही समय में हटा देता हूं: प्राथमिकता = "1" जो मैं एंड्रॉइड को संशोधित करता हूं: प्राथमिकता = "20" और भाग में "एसएमएस हटाएं" मैं अस्थायी महसूस नहीं करता


Comments