Search code examples
androidservicebroadcastreceiverinternet-connection

Implement Broadcast receiver inside a Service


I want to check Internet connection throughout the run time of my Android application. I tried using services but seems like it is not the best option. Is there any possible way for me to implement a broadcast receiver with in a service? Or do I have to give up the service and use broadcast receivers alone?


Solution

  • I will show you how to create SMS receiver in a service:

    public class MyService extends Service {
    
    @Override
    public void onCreate() {
        BwlLog.begin(TAG);
        super.onCreate();
    
        SMSreceiver mSmsReceiver = new SMSreceiver();
        IntentFilter filter = new IntentFilter();
        filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
        filter.addAction(SMS_RECEIVE_ACTION); // SMS
        filter.addAction(WAP_PUSH_RECEIVED_ACTION); // MMS
        this.registerReceiver(mSmsReceiver, filter);
    
    }
    
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        super.onStartCommand(intent, flags, startId);
        return START_STICKY;
    }
    
       /**
     * This class used to monitor SMS
     */
    class SMSreceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
    
            if (TextUtils.equals(intent.getAction(), SMS_RECEIVE_ACTION)) {
                 //handle sms receive
            }
        }
    }