come il vostro servizio è già messa a punto, è sufficiente aggiungere un ricevitore trasmissione nel vostro servizio:
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
}
}
};
in del vostro servizio onCreate
fare questo:
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);
e del onDestroy
vostro servizio:
unregisterReceiver(receiver);
e siete a posto per ricevere la trasmissione per quale e i filtri che menzioni in onStartCommand. Assicurati di aggiungere qualsiasi autorizzazione, se necessario. per es.
<uses-permission android:name="android.permission.RECEIVE_SMS" />
voglio visualizzare un messaggio brindisi durante chiamata in arrivo. ho aggiunto questo filter.addAction ("android.provider.Telephony.LISTEN_CALL_STATE"); allora come si fa a mostrare brindisi. – Prasad
Ho notato che non posso passare i dati da intent.setData (myUri) durante l'invio di sendBroadcas (intento) e braoadcastReceiver non funziona in quel caso, giusto? – deadfish
Sono poco confuso circa il ciclo di vita del servizio quando ha BroadcastReceiver (nel mio caso scarica BroadcastReceiver) –