, как ваша служба уже настроена, просто добавьте вещательный приемник в службе:
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
}
}
};
в своих службах onCreate
это сделать:
IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
filter.addAction(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED);
filter.addAction("your_action_strings"); //further more
filter.addAction("your_action_strings"); //further more
registerReceiver(receiver, filter);
и в своих службах onDestroy
:
unregisterReceiver(receiver);
и вы можете отправиться на трансляцию для чего ver фильтры вы упоминаете в onStartCommand. Обязательно добавьте любое разрешение. например.
<uses-permission android:name="android.permission.RECEIVE_SMS" />
я хочу, чтобы отобразить тосты сообщения при входящем вызове. Я добавил этот filter.addAction ("android.provider.Telephony.LISTEN_CALL_STATE"); то как сделать тост. – Prasad
Ive заметил, что я не могу передавать данные с помощью намерения. SetData (myUri) при отправке sendBroadcas (намерение) и braoadcastReceiver не работает в этом случае, правильно? – deadfish
Я немного путаюсь в отношении жизненного цикла службы, когда у него есть BroadcastReceiver (в моем случае скачать BroadcastReceiver) –