como su servicio ya está configurado, sólo tiene que añadir un receptor de radiodifusión en su servicio:
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
}
}
};
en su servicio onCreate
hacer esto:
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);
y de onDestroy
su servicio:
unregisterReceiver(receiver);
y está listo para recibir la transmisión de lo que e ver los filtros que mencionas en onStartCommand. Asegúrese de agregar cualquier permiso si es necesario. por ej.
<uses-permission android:name="android.permission.RECEIVE_SMS" />
Quiero mostrar mensaje de aviso emergente, mientras que las llamadas entrantes. Agregué este filter.addAction ("android.provider.Telephony.LISTEN_CALL_STATE"); entonces, ¿cómo mostrar tostadas? – Prasad
He notado que no puedo pasar datos por intent.setData (myUri) mientras envío sendBroadcas (intento) y braoadcastReceiver no funciona en ese caso, ¿verdad? – deadfish
No tengo mucha confusión sobre el ciclo de vida del servicio cuando tiene BroadcastReceiver (en mi caso, descargue BroadcastReceiver) –