2012-12-03 14 views
6

मैं एंड्रॉइड में शुरुआत कर रहा हूं। मैं दो वर्ग है, और प्रथम श्रेणी केकिसी गतिविधि के बिना एंड्रॉइड में सेवा कैसे शुरू करें

public class SmsReceiver extends BroadcastReceiver{} 

है और द्वितीय श्रेणी

public class SMS extends Activity{} 

सभी मुझे लगता है कि क्या करना चाहते है: जब मैं एक एसएमएस मिलता है, गतिविधि शुरू करने और कुछ करना। लेकिन मैं "गतिविधि" के बजाय "सेवा" का उपयोग करना चाहता हूं। मेरा मतलब है कि एप्लिकेशन कब शुरू होता है, फिर गतिविधि के बिना सेवा शुरू करें।

क्या यह संभव है?

+0

आप सेवा और प्रसारण reciver –

उत्तर

3

एसएमएसआरसीवर से अपनी सेवा शुरू करें:

public class SmsReceiver extends BroadcastReceiver{ 
@Override 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 
     if(action.equals("android.provider.Telephony.SMS_RECEIVED")){ 
     //action for sms received 

      // start service here 
      Intent intent=new Intent(context,Your_Service.class); 
      context.startService(intent); 

     } 
     else { 

     }  
    } 
} 

और सुनिश्चित करें कि आप के रूप में AndroidManifest.xml में आपकी सेवा में पंजीकृत है बनाने:

<service android:name="com.xxx.xx.Your_Service" /> 
+0

द्वारा सेवा satrt को आपकी गतिविधि के वर्ग का विस्तार करने के लिए है धन्यवाद, टिप्पणी AndroidManifest के बारे में वास्तव में था मेरे लिए काफी मददगार –

1

हाँ आप केवल ब्रॉडकास्ट रिसीवर बनाकर ऐसा कर सकते हैं जो आपके एप्लिकेशन बूट करते समय आपकी सेवा को कॉल करता है। मेरे द्वारा दिया गया एक पूरा उत्तर यहां दिया गया है। Android - Start service on boot

आप आप आवेदन के लिए किसी भी आइकन/लांचर आप कर सकते हैं कि यह भी, बस

<intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 

के साथ किसी भी गतिविधि नहीं बनाते सामान्य रूप से घोषित बस अपने सेवा की घोषणा नहीं करना चाहते हैं।

0

जब आप एक एसएमएस मिला आप प्रसारण रिसीवर द्वारा आपकी सेवा शुरू

@Override 
public void onReceive(Context context, Intent intent) { 

     try { 

      context.startService(new Intent(context, 
        YourService.class)); 
     } catch (Exception e) { 
      Log.d("Unable to start ", "Service on "); 
     } 

और कृपया सुनिश्चित करें कि आप

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

और एसएमएस के लिए भेजने अपनी AndroidManifest.xml फ़ाइल में अनुमति का उल्लेख किया है और प्राप्त करने से आप इस ट्यूटोरियल को देख सकते हैं Sending sms in android