Comme votre service est déjà configuré, il vous suffit d'ajouter un récepteur de diffusion dans votre service :
private final BroadcastReceiver receiver = new 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
}
else if(action.equals(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED)){
//action for phone state changed
}
}
};
dans le onCreate
de votre service, faites ceci :
IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
filter.addAction(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED);
filter.addAction("vos_chaines_d_action"); //en savoir plus
filter.addAction("vos_chaines_d_action"); //en savoir plus
registerReceiver(receiver, filter);
et dans le onDestroy
de votre service :
unregisterReceiver(receiver);
et vous êtes prêt à recevoir des diffusions pour tout filtre que vous mentionnez dans onCreate
. Assurez-vous d'ajouter les autorisations nécessaires, par exemple :
<uses-permission android:name="android.permission.RECEIVE_SMS" />