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");
}
}
}