2011-02-11 14 views
11

मैं एक एंड्रॉइड एप्लिकेशन विकसित कर रहा हूं जिसमें मैं उपयोगकर्ता को जानने के बिना आने वाले संदेश को पढ़ना चाहता हूं। मैं हमेशा आने वाले संदेश चेकर को पृष्ठभूमि में चलाना चाहता हूं। अगर कोई नया संदेश प्राप्त होता है तो इसका मतलब है कि मैं संदेश की सामग्री को पढ़ना चाहता हूं और उस संदेश है कुछ शब्द (पासवर्ड) का अर्थ है मैं आवेदनएंड्रॉइड में पृष्ठभूमि में सेवा का उपयोग कर आने वाले संदेश को कैसे पढ़ा जाए?

मुझे स्पष्ट करने दें कि नमूना कोड के साथ क्योंकि मैं android के लिए

उत्तर

21

BroadCastReceivers पर एक नज़र आप को लागू करना चाहिए ले लो और रजिस्टर नया हूँ करने के लिए सक्रिय करना चाहते हैं android.provider.Telephony.SMS_RECEIVED

के लिए एक रेसीवर यहां एक कोड स्निपेट है जो आपको संदेशों को पढ़ने के लिए अनुमति देता है मैंने।

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.SmsMessage; 
import android.widget.Toast; 

public class SMSReceiver extends BroadcastReceiver 
{ 
    public void onReceive(Context context, Intent intent) 
    { 
     Bundle myBundle = intent.getExtras(); 
     SmsMessage [] messages = null; 
     String strMessage = ""; 

     if (myBundle != null) 
     { 
      Object [] pdus = (Object[]) myBundle.get("pdus"); 
      messages = new SmsMessage[pdus.length]; 

      for (int i = 0; i < messages.length; i++) 
      { 
       messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
       strMessage += "SMS From: " + messages[i].getOriginatingAddress(); 
       strMessage += " : "; 
       strMessage += messages[i].getMessageBody(); 
       strMessage += "\n"; 
      } 

      Toast.makeText(context, strMessage, Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

और यहाँ आप क्या अपनी AndroidManifest.xml फ़ाइल में जोड़ने के लिए:

<uses-permission android:name="android.permission.RECEIVE_SMS" /> 

<receiver android:name=".SMSReceiver"> 
    <intent-filter> 
     <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
    </intent-filter> 
</receiver> 
+1

मुझे नहीं लगता कि अपने कोड एक सेवा के रूप में काम करेंगे है, यहाँ एक ही मुद्दा है, http: // stackoverflow.com/questions/9029040/how-to-run-an-android-app-in-background –

+0

यह एक सेवा नहीं है। – squid

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