salve
vorrei realizzare una app che logga (solo per studio e per capire come funziona android)
stato dispositivo e eventi sullo stesso (tipo creazione nuova voce in rubrica etc)
ho letto un sacco di articoli in rete in merito poi mi sono imbattuto in questo progetto
https://github.com/ViliusKraujutis/A...adcastsMonitor
ho scaricato e aperto il progetto per cercare di capire come fare e come funziona il tutto
ed ho visto che l'autore del codice
crea un servizio per registrare tutti i broadcast leggendoli da un file xml in tutto il sistema
non riesco a capire la necessità di creare un servizio in quanto un broadcast una volta registrato
funziona anche senza servizi
e come avviare o fermare un servizio possa far si che fermi la ricezione degli eventi.
altra domanda:
se il meccanismo dei broadcast non basta per le mie necessità tipo eventi non gestiti con i broadcast (non se se è possibile premetto), in questo caso devo per forza creare un servizio e mettermi in ascolto su un determinato evento con uno snipcode simile a questo ?
codice:public class MyLogService extends IntentService { public MyLogService() { super("MyLogService"); TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); telephonyManager.listen(new MyPhoneStateListener(),PhoneStateListener.LISTEN_CALL_STATE); Log.i("PROVA SERVICE", "Constructor Service"); } ..... package com.example.hello_rev_1; import android.content.Context; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.util.Log; public class MyPhoneStateListener extends PhoneStateListener { MyDBManager m_db; public MyPhoneStateListener(MyDBManager db) { super(); // TODO Auto-generated constructor stub m_db=db; } public void onCallStateChanged(int state, String incomingNumber) { switch(state) { case TelephonyManager.CALL_STATE_RINGING: Log.d("PROVA SERVICE", "SQUILLO DA "+incomingNumber); //m_db.save("Stato chiamate", "chiamata "+incomingNumber,"chiamata "+incomingNumber); break; case TelephonyManager.CALL_STATE_OFFHOOK: Log.d("PROVA SERVICE", "RISPOSTO"); //m_db.save("Stato chiamate", "chiusa chiamata "+incomingNumber,"chiusa chiamata "+incomingNumber); break; case TelephonyManager.CALL_STATE_IDLE: Log.d("PROVA SERVICE", "CHIUSO"); //m_db.save("PROVA SERVICE", "State indle","State indle"); } } }

LinkBack URL
About LinkBacks
Rispondi quotando